-
like
语句中,以'%'
开头的模糊查询 - 有
or
的条件判断时(使用OR查询的部分字段没有索引),or两侧的字段都有索引时,会用到索引合并 - 字段类型不匹配,比如
varchar
的字段name
,
SELECT `id` FROM `user` WHERE `name` = 111
- 对于多列索引,不是使用的第一部分(第一个),则不会使用索引
- 如果
mysql
估计使用全表扫描要比使用索引快,则不使用索引 -
LEFT JOIN
语句,ON
后面的字段编码不同也会导致索引失效
like
语句中,以'%'
开头的模糊查询or
的条件判断时(使用OR查询的部分字段没有索引),or两侧的字段都有索引时,会用到索引合并varchar
的字段name
,SELECT `id` FROM `user` WHERE `name` = 111
mysql
估计使用全表扫描要比使用索引快,则不使用索引LEFT JOIN
语句,ON
后面的字段编码不同也会导致索引失效