如果一个表只需要1个索引,那么看起来群集通常是要走的路。它更快,因为它不必通过密钥引用数据,并且它也不像非聚集索引那样占用磁盘空间。
我的问题是多个索引,最好一起删除聚簇索引吗?这背后的逻辑是,如果您有非聚集索引和聚簇索引,它们不再直接引用回实际数据行,而是转向聚簇索引。因此,使用聚簇索引作为代理似乎会对性能造成重大影响。如果您认为表中需要多于1个索引,那么最好不要使用聚簇索引。
答案 0 :(得分:0)
如果表格具有正确的聚集索引,则删除它没有任何好处 如果你有几个索引,那么选择最佳的聚类候选者 通常它是你的PK 默认情况下,当您创建PK时,它会聚集 PK是群集的最佳候选者,除非您有特殊原因不使用它。
我不遵循你的断言。
"如果你有非聚集索引和聚集索引,他们就不会 再引用实际数据行,但返回到聚簇索引 代替。所以似乎会有一个重要的表现 命中#34;
如果聚簇索引在数据中,那么引用聚簇索引就是指数据。数据由聚簇索引物理组织。重要的性能在哪里受到影响?
Clustered Index Design Guidelines
除少数例外情况外,每个表都应定义一个聚簇索引
如果少数例外中的一个是另一个索引,则会被调出 另一个非聚集索引不是没有聚簇索引的原因。
非聚簇索引行中的行定位器是指向行的指针,或者是行的聚簇索引键,如下所述:
即使有PK,他们也可以选择使用RID。为什么你认为聚簇索引较慢?