我可能错了,但在互联网上似乎有不同意见。 SQL Server,MySQL,DB2和PostgreSQL显示了这些表的不同定义。
在阅读了来自不同供应商的数据(数据库手册,用户帖子等)之后,我能够区分出三种类型的感兴趣的表(对于这个问题,有许多,更多类型没有兴趣)。请耐心等待:
堆表:
纯索引表:< - 这是一个聚集索引表吗?
索引+已排序的堆表:< - 这是一个聚簇索引表吗?
现在,这些#2或#3中的哪些是"聚集索引表"?谁说实话,谁说谎? :d
换句话说,是术语"聚集索引表"每个供应商根据他/她喜欢自由定义的商业术语,或根据某些官方数据库理论是否有官方唯一定义?
答案 0 :(得分:2)
据我所知,“聚簇索引”是索引的叶节点是数据页的索引。这与非聚集索引不同,其中叶节点是对存储在数据页上的行的引用。
一个表最多只能有一个聚簇索引。在具有聚簇索引的表中,数据按索引键排序。
Postgres不支持聚簇索引。它有一个名为"cluster"的表优化,它根据索引对数据进行排序。但是,不保留此顺序,因此它与聚簇索引不同。