【问题标题】:Databases: More questions about (B-Tree) indexes数据库:关于(B-Tree)索引的更多问题
【发布时间】:2011-09-26 06:27:34
【问题描述】:

我一直在研究索引,有一些问题困扰着我,我认为这些问题很重要。

如果您可以提供帮助或参考来源,请随时提供。

Q1: B 树索引有利于快速访问表中的特定行。考虑到一个 OLTP 系统,同时有许多访问,读和写,你认为在这个系统上有很多 B 树索引会是一个缺点吗?为什么?

Q2:为什么 B-Tree 索引没有被完全占用(如果我没记错的话,通常只有 75% 被占用)?

【问题讨论】:

    标签: database data-structures indexing b-tree


    【解决方案1】:

    Q1:我在实践中没有管理大型索引系统的经验,但典型的多处理环境缺点适用于在系统上拥有多个 B 树索引——上下文切换成本、缓存失效和刷新、IO 调度不佳,并且列表上升。另一方面,IO 本质上应该是非阻塞的,以最大限度地利用资源,如果没有某种并发性,即使以协作方式完成,也很难做到这一点。 (例如,有些人推荐基于事件的系统。)此外,对于许多实际应用程序,您将需要多个索引结构,尤其是在您研究 OLTP 时。这里最重要的是良好的 IO 调度、访问模式和数据缓存,具体取决于所述访问模式。

    Q2:因为分裂和重新平衡节点的成本很高。速度的天真方法是“只有在满了的情况下才分开”。鉴于此,有两个极端——一个节点刚刚分裂并且是半满的,或者一个节点是满的,所以它会在下一次。案例(50% 和 100%)之间的“平均”为 75%。是的,从数学的角度来看,这有点糟糕的逻辑,但它揭示了 75% 数字出现的根本原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多