首先我们来认识一下什么是索引。
数据库索引,是数据库管理系统中的一个排序的数据结构,以协助快速查询,更新数据库中表的数据。索引的实现通常使用B树和变种的B+树(MySql常用的索引就是B+树)。除了数据之外,数据库系统还维护为满足特定查找算法的数据结构,这些数据结构以某种方式引用数据。这种数据结构就是索引。
为什么使用B+树作为数据库的索引,首先我们需要了解到的就是B+树比其他数据结构好在哪里。我们先说说其他数据结构作为索引的效果。
1.哈希索引:
哈希就是通过一个哈希函数,传入要输入的数据之后,得出哈希值结果进行一个映射。所以说哈希值是无序的,既然是无序的值,那么哈希索引就无法进行范围的查找,并且数据库的查询功能有许多的大于、小于的查找;在比如说,你使用排序操作的话,因为哈希值是无序的,那么你也无法使用哈希值进行排序,因为哈希值本身就是无序的;再比如说,有的值是不同的,但是它的哈希值是相同的。
2.平衡二叉树:
很直观的讲,平衡二叉树有一个十分明显的缺点,那就是随着插入节点的增加,它的层数会逐渐的加深,它的查找效率也会逐渐降低。再比如我查找一个大于5的数,我们定位这个节点5之后,就去查找大于5的节点,去进行一个回旋,如果大于5的数有许多,那么就需要进行很多次的回旋,一一去定位这个点,那么这个效率是十分低下的。

3.B树:
B树使一个节点可以存在多个数据,减少了树的深度,一定程序上减少了查找的次数,提高了效率,但是关于回旋查找的问题B树也是没有很好的解决。

4.B+树:
B+数彻底的解决了回旋查找的问题。B+树再B树的基础之上将叶子节点进行了排序,其实就是通过一个链表将所有的叶子节点连接起来,B+树就是通过链表解决了回旋查找的问题。
版权声明:本文为weixin_51768320原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。