联合索引的最左匹配原则的成因?
答:Mysql创建联合索引的规则是首先会对联合索引的最左边索引字段的数据进行排序,在第一个字段的排序基础上,再对后面第二个索引字段进行排序,相当于实现了orderby 字段1,字段2排序规则,所以第一个字段是绝对有序的,而第二个字段就是无序的了,因此通常情况下直接使用第二个字段进行条件判断是用不到索引的。
联合索引是col3,col2,如果想要根据这个索引查找col2,必须先依靠col3。
联合索引就是由多列组成的索引
最左匹配原则:
例如:
A,B是联合索引。
当查询where A=? and B=? 和where A=?时会走这个索引
当查询where B=? 就不会走这个索引
举例:
联合索引:
走联合索引的情况:
不走联合索引的情况: