一、问题描述:
项目有一个多条件查询的sql语句,因数据量比较大,查询非常慢,就考虑对条件查询的字段加入联合索引。加入索引,
之后对所有条件字段包含在内的sql语句进行explain,确实走了联合索引。然后,减少依次减少条件字段,再进行explain,
发现当去掉联合索引中的第一位字段条件时,sql不走联合索引,仅仅使用了id的主键。(多次测试发现的)
就得出结论:sql语句联合索引优化,联合索引的使用与联合索引的列的位置顺序有关系。
把条件字段中必须使用的字段放在联合索引的第一位。
二、解决:
在网上查询了一下,sql联合索引优化和字段顺序的关系影响,发现还是有很多这个解释说明的。
直接引用如下: