比如说有三个字段 a b c,建立复合索引a_b_c。...所以索引失效!
总结
因为前一个条件相同的情况下 当前条件才会是有序的。...当前一个条件不同 那么无法保证当前条件为有序的 所以索引失效
再进一步,假设有以下数据
1(b=2,c=4)
2(b=2,c=5)
3(b=3,c=1)
4(b=3,c=2)
此时对于b 这四个数据都是有序的...至于为什么在c后面的索引也会失效(范围后全失效),难道不能查完c之后,把c的结果当成索引继续吗?...遍历一次结果(假设只对比c的值,这样更快)找到三条数据
c = 5:
2(b=2,c=5,d = 6)
3(b=2,c=5,d = 7)
5(b=3,c=5,d = 1)
这时候发现要查找字段d还是乱的