B+树的性质

一棵 m 阶 B+ 树满足如下性质:

在 B+ 树中,所有关键字都存放在叶子节点;而在 B 树中,所有节点都存放关键字。

在 B+ 树中,非叶子节点的关键字,只起索引作用,所以在搜索时,一定要搜索到叶子节点;而在 B 树中,可能无需搜索至叶子节点就可以找到关键字。

在 B+ 树中,所有叶子节点都通过指针连接起来。 B+ 树有两个指针:一个指向根节点;一个指向最左面的叶子节点。

下面的例子是一棵 3 阶 B+ 树:

b_plus_tree.jpg


B+树的深度

对于有 n 个关键字的 m 阶 B+ 树而言:


搜索关键字

从根节点开始


插入关键字

从根节点开始


删除关键字


Python 实现

tim-chow 的 Github