- 最左前缀法则,如果索引了多列(联合索引),要遵循最左前缀法则,指的是查询从索引的最左列开始,并且不跳过索引中的列,如果条约某一列,索引将部分失效。
- 范围查询 ,如果联合索引中出现范围查询,范围查询右侧的列索引将失效。可以将大于小于改为大于等于小于等于即可避免生效。
- 在索引列上进行运算操作时索引将失效。
- 字符串类型不加引号索引失效。
- 模糊匹配 like ‘%’,如果是前面模糊匹配索引失效,仅尾部模糊匹配索引不会失效。
- 用or 时必须两侧都为索引,索引才会生效。
- 数据分布影响,如果MySQL评估使用全表扫描比索引快,则不使用索引。
- Extra中出现using index condition说明使用了索引,但是需要回表查询。