1

我在哪里可以找到有关哪些数据库是否使用 B+Trees 而不是 B-Trees 进行索引实现的信息?

Oracle 似乎正在使用 B+Trees。虽然他们没有在他们的文档中描述它,但他们的图形似乎表明 B+Trees 正在实际使用中。

4

3 回答 3

3

维基百科列出了许多支持 B+ 树的数据库。

但是请注意,数据库完全有可能支持多种索引

于 2010-06-04T15:00:17.527 回答
1

对于 SQL Server,信息在这里:http: //msdn.microsoft.com/en-us/library/ms177443.aspx

在 SQL Server 中,索引被组织为 B 树。索引 B 树中的每一页称为索引节点。B树的顶端节点称为根节点。索引中最底层的节点称为叶节点。根节点和叶节点之间的任何索引级别统称为中间级别。在聚集索引中,叶节点包含基础表的数据页。根和中间级节点包含保存索引行的索引页。每个索引行包含一个键值和一个指向 B 树中的中间级别页面或索引叶级别中的数据行的指针。索引的每一级中的页面都链接在一个双向链表中。

于 2010-06-04T14:57:47.923 回答
1

Oracle 的默认索引是 B* 索引。(AB* 索引是 B+ 索引的“任何”变体。)Oracle 在他们的一些 DBA 和基础文档中提到了 B*。您还可以创建使用集群索引的集群。您可以在数据仓库或 OLAP 数据库中创建位图索引。位图索引在 OLTP 数据库中的性能极差,尽管如果表很少更新,它们可能工作正常。

出于性能原因,我确信为 OLTP 设计的所有数据库都使用 B* 树作为它们的主索引。例如,Teradata 专为数据仓库而设计,并使用基于哈希的索引。

于 2010-06-04T15:13:09.770 回答