哪些DBMS提供索引组织表?

时间:2010-08-22 12:11:48

标签: mysql database postgresql db2 informix

我目前的知识:

  • Oracle确实提供了索引组织的表,默认为堆组织。
  • 我听说SQL-Server只使用索引组织表

我对MySQL,PostgreSQL,Informix和DB2的答案特别感兴趣。

4 个答案:

答案 0 :(得分:2)

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

MySql clustered indexes并看到此问题here

DB2具有MDC(多维集群),可以通过多种方式有效地对表进行组织索引。我从来没有使用它们,但你可能只有一个单一的MDC,它与标准的聚集索引相同。

甲骨文有点痛苦。上次我检查它的IOT实现需要你创建表作为IOT,你不能在以后更改它,这是很烦人的时候你想加载没有速度索引的数据加载,然后索引它。

答案 1 :(得分:1)

SQL Server可以将表数据存储在Heap StructuresClustered Index Structures中。如果表没有聚簇索引,则将其视为堆。有关详细信息,请参阅此处Heap StructuresClustered Index Structures

答案 2 :(得分:1)

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

答案 3 :(得分:0)

PostgreSQL提供聚簇索引。

命令cluster <table> <index>将根据索引对数据库表进行物理排序。随后的数据修改将忽略此顺序。可以通过发出cluster <table>刷新顺序。

请参见https://www.postgresql.org/docs/10/static/sql-cluster.html