联合索引才会有最走原则,一个索引(name,age,sex)有三个字段作为联合索引,以下哪个查询sql会用索引呢 ?

索引数据

联合索引
EXPLAIN SELECT * from a_table where name='zhangsan' and age=12 #会用到索引
EXPLAIN SELECT * from a_table where sex='Male' and name='zhangsan' #用到索引 ,查询器内部会优化,调整顺序后遵循最左原则
EXPLAIN SELECT * from a_table where sex='Male' and age=12 ## 未用到索引
EXPLAIN SELECT * from a_table where name='zhangsan' and age>11 and sex='Male' # 遇到范围查询时会停下,sex字段没有用到索引
联合索引,多个字段会拼接在一起,在查询的时候只能遵守最左原则,在范围查找不会优化顺序,遇到范围查找运算符会停止使用索引