关于sql:“聚集”在“聚簇索引”中意味着什么?

What does “clustered” mean in “clustered index”?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
Difference between clustered and nonclustered index
What do Clustered and Non clustered index actually mean?

嗨,专家们,

"聚集索引"中的"聚集"一词是什么意思?我怀疑这与磁盘扇区的使用有关。因为我隐约记得Windows将磁盘空间组织成由一个或多个512字节扇区组成的集群。这两个概念有什么联系吗?

谢谢。


聚集索引表示磁盘上记录的物理顺序。非聚集索引只是指向表中物理记录的"指针";它们按键的顺序排列,并包含键的数据和任何包含的列。

考虑一本书的索引和它的页码:索引包含按字母顺序排列的主题列表,也许它包含主题的摘要,但是主题本身在引用的页面上。那么,页码就是聚集索引。

因此,您应该考虑为聚集索引选择一个不变的、单调递增的主键,以便在插入和更新时不需要重新排列内容。


群集意味着具有相似键的记录存储在磁盘上(大多数情况下)彼此相邻。因此,如果一个键只有一个整型列,那么值为"1"的记录将位于值为"2"的记录旁边。如果您有多个记录,例如questionid和answerid,那么属于某个特定问题的所有答案都将被分组到磁盘上,这样访问它们就更快了。