唯一索引列顺序 - 重要吗?

时间:2017-02-15 19:15:28

标签: sql-server database indexing unique-index

有很多关于索引列顺序的文章,我明白了。但是,我没有找到关于唯一索引的信息。

简单示例:ProductCategory表使用ProductCategoryMapping表与3列具有nn关系:identity IdProductIdCategoryId

如果我创建一个包含2列的唯一索引UN_ProductCategoryMapping_ProductProductIdCategoryId,我是否还应该以相反的顺序创建另一个唯一索引,假设我有时想“列出所有产品类别“,有时”列出产品所属的所有类别“?

在这种情况下,SQL Server是否足够智能以进行优化?

1 个答案:

答案 0 :(得分:2)

唯一性并不依赖于列顺序。如果您声明第1列,第2列和第3列的组合是唯一的,而其他人声明第2列,第1列和第3列的组合是唯一的,那么您将说明相同的事实。

但这并不是说所有索引都是平等的,或者同样有用。如果您可以使用所有最左侧的列,则索引仅(可能)有用。如果您的查询没有使用任何索引的最左侧列,则满足查询的唯一方法是扫描整个表。