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

标签 sql-server database indexing unique-index

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

简单示例:ProductCategory 表具有 n-n 关系,使用具有 3 列的 ProductCategoryMapping 表:身份 IdProductIdCategoryId

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

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

最佳答案

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

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

关于sql-server - 唯一索引列顺序-重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42258194/

相关文章:

sql - 'recurring tasks' 的设计选项

python - 数组索引的开放网格

sql - 如何停止 SQL Server 交换月份和日期?

php - 当数据库与 PHP 代码不在同一台机器上时,为什么 PHP -> MSSQL 非常慢

sql - 分组和划分 Netezza

php - MySql 'Select' 帮助

sql - 性能 : View or Query

database - 您将如何避免此数据库模式中的数据冲突?

matlab - 在 MATLAB 中,每次值从 1 变为 0 时如何查找向量中的索引?

mongodb - Mongoose 创建多个索引