select
c1
from a
left join b on a.id = b.id
b.id建立了聚合索引,c1建立了聚合索引,为什么查询后的排序不按c1排序,总是在变化?谢谢回复。
------解决思路----------------------
执行计划贴一下。感觉你这个连接之取C1,又不是直接扫描C1的索引。而是扫描聚集索引。然后进行JOIN的不按照C1排序很正常了
------解决思路----------------------
这个的看具体的执行计划,另外,这个语句到底会按照哪个字段排序,这个是不确定的。
之前也有网友问类似的问题,表有聚集索引,为什么不按照这个字段来排序,但实际上影响顺序的因素很多,比如:
1.其他的非聚集索引
2.执行计划本身,不会按照特定的字段来排序,有时候我们看到结果好像是按照某个字段排序的,这个只是凑巧,真好用上了某个所以,于是就让结果有了顺序
3.如果你希望有顺序,那么最后是加上order by子句,明确指定排序的字段