2010-08-22 77 views
6

我目前的知识:哪些DBMS提供索引组织表?

  • 甲骨文确实提供索引组织表和默认堆组织。
  • 我听说SQL-Server只使用索引组织表

我在为MySQL,Informix和DB2的答案特别感兴趣。

回答

2

MySql具有聚簇索引,但似乎对这些索引的控制有限。

MySql clustered indexes看看这个问题here

DB2具有MDC(多维集群),它可以有效地组织指数在几个方面表。我从来没有使用过它们,但你可能只需要一个单一维度的MDC,它将与标准聚集索引相同。

Oracle是一个有点疼痛。上次我用它的IOT实现检查时,需要将表创建为IOT,并且以后不能再进行更改,如果要加载一个没有速度索引的数据负载,然后对其进行索引,这很烦人。

+0

谢谢!我愿意接受一些相当大的表现的痛苦;-)。 – 2010-08-22 13:52:17

+0

现在我查找了Informix的聚簇索引,并且它也在那里!所以,我的候选数据库管理系统似乎都支持物联网又名聚类索引。 – 2010-08-22 13:56:52

1

SQL Server可以存储在任何Heap StructuresClustered Index Structures表数据。如果一个表没有聚集索引,那么它就被认为是一个堆。有关更多详细信息,请参见Heap StructuresClustered Index Structures

1

至于Informix Dynamic Server的(IDS)或标准引擎(SE),它们都支持群集和非聚集索引。 IDS使用RSAM,SE使用C-ISAM B-Tree索引。对于这两种情况,当创建一个集群索引时,一个表的行按照与索引相同的顺序进行物理排序,但是当新行添加到表中时,该行实际位于EOF(堆)中。

+0

“......但是当新的行被添加到表中时,行被物理地放置在EOF(堆)处。”哦,这真是一个惊喜。感谢您发布此信息。 – 2010-08-24 16:05:55

+0

这将是很好的新插入的行以物理方式放置在根据聚簇索引数据文件,但认为所有的发动机要做到保持这种工作。表演将是一场灾难! – 2016-05-30 01:05:14