我对 BTrees 的理解是:
- 如果根 BTree 大小为 32,则级别 1 有 1024 个键容量
- 级别 2 可以排序 1048576 个键
- 第 1 层的实际容量为 512,第 2 层的实际容量为 524288,因为叶子已填满一半。
我还好还是很明显是出于担心?
我对 BTrees 的理解是:
- 如果根 BTree 大小为 32,则级别 1 有 1024 个键容量
- 级别 2 可以排序 1048576 个键
- 第 1 层的实际容量为 512,第 2 层的实际容量为 524288,因为叶子已填满一半。
我还好还是很明显是出于担心?
计算Btree容量的公式:假设最大子节点数为D,则任何节点的最大键数为D-1。级别 1(根级别)始终有一个具有 D-1 键的节点。级别 2 最多可以有 D 个节点,每个节点最多可以有 D-1 个键,所以级别 2 有 D*(D-1) 个键。级别 3 最多可以有 D^2 个子节点(因为级别 2 中的任何节点都可以有 D 个子节点,而级别 2 中最多有 D 个节点)。第 3 层中的每个节点最多可以有 D-1 个键,因此第 3 层中的键数为 D^2 * (D-1),依此类推……对于任何第 i 层,最大键数为键是 D^(i-1) *(D-1)。因此,树的容量是通过将每个级别的容量相加得到的。