B+树和B-sh树
在MySQL中的InnoDB引擎使用的为B+树和B-树,这两种树结构都属于查找树的一种,对于以前的二叉查找树不同的是,B+树和B-树为多路查找树,并不局限于两条分支,可以有多个条件查找,根据下面的画出的两张图片可以清楚地看到异同点:
B+树是一种多路查找树,在InnoDB下使用B+数保存数据,为聚簇索引;
在每个节点里面的元素都可以重复,因为每个节点里保存的都只是索引特征,并不是数据;
而在叶子层也就是存放数据的容器,在最后一层存放的都是数据,使用的是链表的方式连接;
则可以快速查找到自己想要的查找的数据内容,也就是上面那张图片中的黄色圆圈部分;
B-树,二级索引,其中的每个节点都不能重复。也就是说上图中的所有浅蓝色部分都不能出现重复的元素;
因为在B-树的每个节点中都保存着数剧(主键),然后找到主键后,在去B+树种查找该主键所对应的数剧,可配合B+树使用