在像MySQL或Oracle数据库,如何索引执行?我认为普通索引被存储为B树,却找不到关于复合索引多列索引是什么。我在寻找使用这样的数据结构的名字,我可以研究它们。

更一般地,在哪里可以找到有关数据库的实现细节更多这些信息呢?我要在大学很久以后采取对一门课程,但我现在很好奇。

有帮助吗?

解决方案

复合索引也使用B-树,他们只是串联索引列,以确定键。作为侧节点,Oracle还知道其他类型的索引,即位图索引。但是,这并不依赖于索引列的数量。

其他提示

B树。每个索引被存储为B树 - 甚至复合那些

如果你正在寻找做索引的组织方式进行更多的研究,看看B +树和B *树。对于SQL Server,卡伦·德莱尼的Inside SQL服务器:存储引擎是一个极好的预定有关SQL Server的螺母和螺栓,包括它的索引组织。所以,你一定要检查出来。

有一个评论者指出,可以使用Oracle的位图索引,它比B树非常不同的结构,但那些很少使用传统的关系型数据库 - 他们更常用于OLAP类型的应用,并在情况下,你需要的数据的非选择性组快速访问。

编辑:SQL Server中,例如,现在使用列存储索引。如果你做大型BI型工作负载的任何工作,这是绝对值得看这些,因为它们存储在比B树完全不同的方式您的数据。

SQL Server还使用不同的机制现在存储器优化的表为好,是一件非常有益的OLTP类型的查询。

scroll top