B+树与B树的区别?索引为什么选择B+树

参考https://blog.csdn.net/weixin_30531261/article/details/79312676

b-树,叶子节点跟非叶子节点都储存数据

b+树,只有在叶子节点储存数据

区别:

B树:有序数组+平衡多叉树; 
B+树:有序数组链表+平衡多叉树;

 

为啥索引使用 b+树

数据库索引采用B+树的主要原因是B树在提高了磁盘IO性能的同时并没有解决元素遍历的效率低下的问题。
正是为了解决这个问题,B+树应运而生。
B+树只要遍历叶子节点就可以实现整棵树的遍历。而且在数据库中基于范围的查询是非常频繁的,而B树不支持这样的操作(或者说效率太低)。

b+树遍历只需要遍历叶子节点以及下一个叶子节点即可

你可能感兴趣的:(B+树与B树的区别?索引为什么选择B+树)