这个问题在这里已经有了答案:
9年前关闭。
Possible Duplicate:
SQL Server Clustered Index - Order of Index Question
我知道聚集索引中的列顺序很重要。
我计划在 where 子句中始终涉及的 3 列上添加聚集索引 - 一个 int、bit 和 datetimeoffset 列。此外,datetimeoffset 列存储增量值。
将 datetimeoffset 列作为聚集索引中的第一个列是否有意义?欣赏它。
最佳答案
列顺序对所有索引都很重要,而不仅仅是聚集索引。
最佳列顺序由多个因素决定:
您是否会仅使用其中一列而不使用其他列来查询此表?如果您的索引定义为 ColumnA, ColumnB
...然后您执行一个仅使用 ColumnB
过滤的查询,则该索引无法使用,因为 ColumnB
不在指数前沿。
每列中的值的选择性如何?被索引的列中包含的不同值越多,索引就越有效。这也是您可能不想包含 bit
的原因。索引中的列,因为只有 2 个可能的值。更具选择性的列更适合处于领先地位。
关于sql-server - 聚集索引上的列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994971/