最近和朋友讨论对于索引的使用,并且测试情况来看, 我在使用过程中碰到了一些疑惑,甚至颠覆了我以前优化SQL脚本执行效率的观点! 譬如有个联合索引 IX_1(A ASC, B ASC, C ASC), 正常情况下,我写SQL WHERE条件会根据建立的索引的顺序,是 
SELECT HH,FF FROM TB WHERE A=? AND B=? AND C=? AND D=?   但是实际情况下 WHERE后面条件的顺序可以随便更换,譬如
SELECT HH,FF FROM TB WHERE D=? AND C=? AND A=? AND B=?   还是用到了IX_1这个索引, 不过这个也可以理解,可能DB在执行前做了执行统计,找出来最优索引命中方式。不过问下,在建有索引IX_2(A ASC, B ASC), IX_3(B ASC, A ASC)的情况下 SELECT HH,FF FROM TB WHERE C=? AND B=? AND A=? 索引优先用哪个?