87 【B树和B+树的区别?为何数据库索引使用B+树 - 程序员大彬 | 小红书 - 你的生活指南】 😆 Ygo2yNPfzbfSt47 😆 http://xhslink.com/ppIGMS

Untitled

1、B+ 树的磁盘读写代价更低:B+ 树的内部节点并没有指向关键字具体信息的指针,因此其内部节点相对 B 树更小,如果把所有同一内部节点的关键字存放在同一盘块中,那么盘块所能容纳的关键字数量也越多,一次性读取内存的需要查找的关键字也就越多,相对 IO 读写次数就降低了。

2、B+ 树的查询效率更加稳定:由于非终结点并不是最终指向文件内容的结点,而只是叶子结点中关键字的索引。所以任何关键字的查找必须走一条从根结点到叶子结点的路。所有关键字查询的路径长度相同,导致每一个数据的查询效率相当。

3、由于 B+ 树的数据都存储在叶子结点中,分支结点均为索引,方便扫库,只需要扫一遍叶子节点即可,但是 B 树因为其分支结点同样存储着数据,我们要找到具体的数据,需要进行一次中序遍历按序来扫,所以 B+ 树更加适合在区间查询的情况,而且在数据库中基于范围的查询是非常频繁的,所以通常 B+ 树用于数据库索引。