2011-11-29 74 views
5

我想编译一个非系统特定的数据库索引列表。我查看了Oracle,DB2,MySQL,Postgres和Sybase,几乎所有资源都有不同的列表。到目前为止,我已经看到:不同类型的数据库索引?

clustered, multi-dimensional clustered, unclustered, unique, 
non-unique, b-tree, hash, GiST, GIN, full-text, bitmap, 
partitioned, function-based. 

似乎不同的系统对于相同类型的索引具有不同的名称。

所有系统中是否存在标准索引类型?

回答

2

你应该更加努力冲刷:-) - 维基提供了一个很好的说明

http://en.wikipedia.org/wiki/Database_index

+0

我看到wiki文章,但是他们有两个不同的“类型”列表: 非集群,集群,集群(Oracle)的 和 位图,密,疏,扭转 这是否意味着有是其他类型的聚簇位图,非聚集位图等等吗? – Nathron

2

许多这些概念是正交的。聚集索引意味着行按照它们在索引中出现的顺序排列在表中。独立地,该索引可以使用B树,B +树,散列,空间等来实现。然后,它可以对该表进行分区或不分区。一方面可能会限制,但不一定意味着另一方面。

+0

在我最近的项目中,我使用了以下几个索引变体:聚簇(MySQL中的主键索引按定义聚簇),非聚簇(外键),唯一,非唯一,B树和空间。 –