【问题标题】:B+ tree - what is the rule regarding non leaf pages?B+ 树 - 关于非叶子页面的规则是什么?
【发布时间】:2022-01-05 21:12:48
【问题描述】:

B+ 树中的非叶子页面是否可以保存不等于任何叶子页面的数字?

【问题讨论】:

  • B 树还是 B+ 树?
  • B+ 树(刚刚编辑了问题)
  • B+ 树的叶子上有所有的索引数据。我想你不能这样做,但如果你仍然称它为 B+ 树,你会混淆人们
  • 让我们假设根树 15。在他的左边,有一个编号为 10 的非叶子页面。这个非叶子页面有 2 个子页面(叶子页面):[4,6] [11, 12]。这种情况可能吗?我们可以期望将非叶子页面从 10 替换为 11。但是,我们可以将其保持为 10 并且它仍然是 B+ 树吗?谢谢!

标签: database indexing tree b-tree


【解决方案1】:

是的,内部块中的键可能与存储在 B+ 树的底层(数据)层中的实际键不同。

这些内部键仅用于设置间隔,不代表实际键。例如,要找到树中的一个键,遍历将始终到树的底层,并且只有在那里它被识别(或确定它不存在)。内部键仅用于确定搜索的方向。

正如您所建议的,这可以减少密钥被删除时所需的更新工作。除非此删除触发合并,否则无需在树中向上更新键。

内部块中的键不需要与实际数据键对应,这也用于节省空间。正如Wikipedia 提到的:

对于内部块,可以通过压缩键或指针来节省空间。对于字符串键,可以使用以下技术节省空间:通常内部块的?th条目包含块的第一个键? + 1。我们可以存储而不是存储完整的键块 ? + 1 的第一个键的最短前缀,严格大于(按字典顺序)块 ? 的最后一个键。

【讨论】:

    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    相关资源
    最近更新 更多