B+树
B+树是应文件系统所需而出的一种B-树的变型树,性质如下:
(1) 有n棵子树的结点中含有n个关键字。
(2) 所有叶子结点中包含了全部关键字信息,且叶子结点中的关键字依顺序存放。
(3) 所有叶子结点增加一个链接指针连接在一起,便于遍历元素。
(4) 所有的非终端结点可以看成是索引部分,其结点中仅包含其子树中的最大或最小关键字。
(5) 若根结点不是叶子结点最少包含2个子结点和2个关键字。
(6) 除根结点之外的所有非终端结点至少有[m/2]棵子树和关键字。
B-树与B+树的差异
m阶的B树和B+树的差异(以5阶为例):
- B+树由分块查找进化而来;B树由二叉排序树进化而来。
- 在B+树中,每个非根结点关键字的取值范围是3≤n≤5,有n棵子树;在B树中,每个非根结点关键字的取值范围是2≤n≤4,有n+1棵子树。
- 在B+树中,仅叶结点包含信息,非叶结点只起索引作用;在B树中,全部结点的关键字都包含信息。
- 在B+树中,叶结点包含了全部的关键字,非叶结点中出现的关键字一定会出现在叶结点中;在B树中,任何结点中的关键字都不会重复。
- B+树支持顺序查找和多路查找;B树只支持多路查找。
- 在B+树中,查找成功或失败都会到达最下一层;而在B树中,查找成功时,可能停在任何一层结点。