树:B*树
跳到导航
跳到搜索
关于
B*树 是“B+树”的变体,在“B+树”的基础上(叶子结点中包含全部关键字信息,及指向含有这些关键字记录的指针):
- B*树 增加了非根非叶子结点指向兄弟的指针;
- B*树 定义了非叶子结点关键字个数至少为“2m/3”,即:块的最低使用率为“2/3”。【不同于“B+树”及“B树”的“1/2”】
B*树的分裂
当一个结点满时,
- 如果它的下一个兄弟结点未满:
- 将一部分数据移到兄弟结点中,
- 再在原结点插入关键字,
- 最后修改父结点中兄弟结点的关键字(因为兄弟结点的关键字范围改变了);
- 如果兄弟也满了:
- 在原结点与兄弟结点之间增加新结点,
- 并各复制1/3的数据到新结点,
- 最后在父结点增加新结点的指针。