参考:
(1)b+树图文详解:https://blog.csdn.net/qq_26222859/article/details/80631121
我:
一、图示1:
可以看出:
(1)每一个父节点的元素都出现在子节点中,且是子节点的最大(或最小)元素。
(2)根节点的最大元素(如图中的 15),是整个B+树的最大元素。
(3)每个叶子节点 都带有 指向 下一个叶子节点 的 指针,形成了一个有序链表。
二、一个m阶的B+树具有如下几个特征:
1.有 k个子树 的 中间节点 包含有 k个元素(B树中是k-1个元素),每个元素 不保存数据,只用来 索引,所有数据都保存在叶子节点。
2.所有的 叶子结点 中包含了 全部元素 的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
3.所有的中间节点元素都同时存在于子节点,在 子节点元素 中 是 最大(或最小)元素。
三、什么是卫星数据
(1)卫星数据,指的是 索引元素 所指向的 数据记录。
(2)B+树中,只有 叶子节点 指向 卫星数据,其余的 中间节点 只是 索引,没有任何数据关联。
四、如何利用B+树查询某个元素
(1)比如我们查询元素3:
可以看出,用的是 二分查找法。
五、如何利用B+树查询某个范围
(1)比如我们查询 3到11 的范围:
可以看出,是 直接通过 链表指针 查找范围的。
六、B+树的优势
(1)单一节点存储更多的元素,可以使得查询的IO次数更少。
(2)所有查询都要查找到叶子节点,查询性能稳定。
(3)所有叶子节点形成有序链表,便于范围查询。