【发布时间】:2017-11-19 01:10:03
【问题描述】:
考虑一个 sql 表 Employer。
A 列 -- (int) 唯一标识列。在选择查询中不用作 where 子句的一部分。
Column B -- (int) 非唯一列。在选择查询中经常作为 where 子句的一部分使用。
以下哪种索引选择更适合设计数据库表以实现良好的性能和低维护
1) A 列上的 1 个聚集的唯一主键和 B 列上的 1 个非聚集索引
或
2) 列 B、A 上的 1 个聚集的唯一主键(复合主键)
或
3) A 列上的 1 个非聚集的唯一主键和 B 列上的 1 个聚集索引
也欢迎任何其他建议。提前致谢
【问题讨论】:
-
将 A 列用于
Where子句。如果是,那么第二个索引将无济于事。排序在多列索引中很重要。 -
什么 RDBM?我认为某些细节将是特定于供应商的。
-
A 列不会用作 where 子句的一部分
-
这是用于 SQL Server 的
标签: sql-server performance clustered-index non-clustered-index