【问题标题】:B+ tree and secondary indexB+ 树和二级索引
【发布时间】:2015-03-28 11:21:10
【问题描述】:

我想知道使用二级索引的 B+ 树是如何工作的?使用二级索引,树的叶子节点可以有重复的值。当插入发生时,如果记录是插入字段的重复值,树如何知道记录在哪里?

【问题讨论】:

  • 我不明白最后一部分(如果它们是插入字段的重复值,树如何知道记录在哪里但记录),你能解释一下吗?
  • 如果 B+ 树在非关键字段上使用二级索引,记录插入将如何工作?

标签: database b-tree


【解决方案1】:

article 提出了一种处理 B+ 树中重复键的好方法。在 B+ 树中,您只在叶节点中保留指向数据的键和指针,它们可能是重复的。例如,7 7 7。要找到它们,您还在内部节点(下图)中保留一个键 7,右指针引用具有 >= 7 的键的块,即具有这 3 个键的块。

现在,在插入时,可能会出现新的重复键不适合节点的情况,为了平衡树必须重新组织。但代价高昂,因此作者建议添加一个溢出块并将其链接到包含重复键的那个。

------------
| 5 | 7 |  |
V---V---V---
        ---------    ---------
        |7  7  7| -> |7      |
        ---------    ---------

【讨论】:

    猜你喜欢
    • 2016-03-16
    • 2011-07-24
    • 1970-01-01
    • 2012-01-13
    • 2014-04-03
    • 2011-09-06
    • 2016-11-06
    • 2011-02-18
    • 2011-02-13
    相关资源
    最近更新 更多