【发布时间】:2015-05-08 11:42:24
【问题描述】:
我有一个表,其中有 4 列 (region_id, product_id, cate_id, month_id) 作为主键。
此主键是默认创建的,因此为 PK 创建了聚集索引。
此表包含超过 1000 万行。
如果我删除现有的 pk 并创建一个具有非聚集索引类型的新 pk,对于以下查询,它是否比聚集索引更好?
select region_id, product_id, cate_id, month_id, a, b, c
from fact_a
where month_id > 100
提前致谢。
【问题讨论】:
-
如果这是一个运行很多的查询,为什么不呢?非聚集索引用于提高聚集索引未覆盖的性能。
-
一张表上不能有多个聚集索引。你能详细说明你在这里的实际意思吗?
-
我已经更新了我的问题,很抱歉造成混乱。
-
这些列是什么数据类型?通常,聚集索引应尽可能窄、唯一且静态。拥有四列很少是理想的......
-
问这种一次性问题不是一个好方法。你在这里学到的很少。只需阅读(简短的)索引教程,这个问题就会很容易回答。
标签: sql-server clustered-index non-clustered-index