数据库和B +树索引

时间:2010-06-04 14:55:51

标签: sql indexing b-tree database-indexes b-tree-index

我在哪里可以找到有关哪些数据库在B-Trees上使用B +树进行索引实施的信息?

Oracle似乎在使用B + Trees。虽然他们没有在他们的文档中描述它,但他们graphics似乎指出实际上正在使用B + Trees。

3 个答案:

答案 0 :(得分:2)

维基百科列出支持B +树的a number of databases

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

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