B树和B+树的特征
b树的核心
- 树高:一般来说,树的高度要比二叉平衡树低很多
- 数组:每一个node,都是一个“数组”,数组是很关键的决定性因素,我们后面写入和读取分析的时候会讲到。
B+tree 其实就是在原有b-tree的基础上。增加两条新的规则
- Branch节点不能直接查到数据后返回,所有数据必须读穿或写穿到leaf节点后才能返回成功
- 子叶节点的最后一个元素是到下一个leaf节点的指针。
这样做的原因是,更方便做范围查询,在b+树种,如果要查询20~56.只需要找到20这个起始节点,然后顺序遍历,不再需要不断重复的访问branch和root节点了。
B树和B+树的算法实现
B树
每个节点占用一个磁盘块的空间,一个节点上有两个生序排序的关键字和三个指向子树根节点的指针,指针存储的是子节点所在磁盘块的地址。
两个关键字划分分成的三个范围域对应三个指针指向的子树的数据的范围域。
以根节点为例,关键字为17和35,P1指针指向的子树的数据范围为小于17,P2指针指向的子树的数据范围为17~35,