什么'集群'在聚集索引中意味着什么?

时间:2014-09-29 12:55:10

标签: sql sql-server indexing

'cluster'一词对聚簇索引的定义有什么影响?

我对集群索引和非集群索引之间的差异有所了解,但仍然没有得到“集群”发挥作用的地方。 对我来说,“群集”是“分组”,但群集和非群集都在内部使用某种分组。

注意:问题是关于命名而不是群集和非群集之间的区别。

2 个答案:

答案 0 :(得分:2)

作为一个艺术术语,它是区分索引类型的一种方式。但是,它意味着它将实际数据聚集在一起(而不仅仅是索引键)。因此,当您有两组群集密钥时,"接近"相互之间,他们的数据行位于"附近"磁盘上的对方。非聚集索引也是如此。

让我们使用一个简单的例子:

我们假设我有一个虚构字符表,其中有两列:CharacterIDName。如果表中有100万行,前两个是(1, 'Antman')(2, 'Zorro'),并且群集密钥是CharacterId,则这两行将彼此靠近。

但是,如果我还有(1000000, 'Algernon')行并且Name上有非聚集索引,那么尽管AntmanAlgernon相互靠近在非聚集索引中,物理行可能位于相隔很远的位置,因为1和1000000相距很远。

答案 1 :(得分:1)

聚簇索引根据键值对表或视图中的数据行进行排序和存储。

非聚簇索引具有与数据行分开的结构。

详细信息check MSDN