B+树和B树都是多路查找树,在innoDB中使用了这两种数据结构。
innoDB是MySql的默认搜索引擎,innoDB使用的是主键索引,而且只接受主键索引,innoDB使用的是 B+树来保存数据的,这种索引又叫聚簇索引。
在innoDB中先从B树中查找到主键,这种索引方式叫二级索引也叫辅助索引,然后使用B+树查找数据内容
B+树
1、除了叶子层,其他层只保留索引特征,包保留数据信息
2、叶子层有放置数据的容器,叶子节点是表的主键
3、叶子层之间使用链表连接(因为这个特点,b+树在范围查找上效率高)
B树
1、所有的节点不能重复,每一个节点都有值
2、节点中保存着B+树里的主键,拿到主键后可以去B+树查找数据内容
B+树的优势
1、因为每个节点不存内存地址,所以每个节点的分支可以更多,这样树的高度可以变矮很多,更利于查找
2、数据区都在叶节点存储,排序更有优势
3、B+树每个叶子节点是一个链表的形式,基于此特点,B+树在范围查询上的效率比B树高了很多。