有一张大桌子T
sID Int PK
pos Int PK
wID Int PK
自加入
T2.sID = T1.sID
T2.pos = T1.pos + 1
T1.wID = 'alpha'
T2.wID = 'beta'
添加了一个索引(wID, sID)
,果然有帮助(很多)
在执行计划中注意到输出是 sID, pos
所以将索引更改为(wID, sID, pos)
.
令我惊讶的是查询计划保持不变并且执行时间没有改善
所以将索引更改为(wID)
相同的查询计划和相同的执行时间
显然将使用较小的索引以获得相同的性能
我的问题是为什么较小的索引同样有效?
是不是因为那个额外的数据就是PK?