1.索引选择性太差,当查询影响行数大于全表的25%的时候,即使创建了索引,但mysql查询优化器还是可能会走全表扫描
2.使用了<>,not in 无法使用索引
3.is null会使用索引,但is not null 不会使用索引
4.在一张表中创建了复合索引,where 子句跳过左侧索引列,直接查询右侧索引列,不会使用索引
5.对索引列进行了计算或者使用了函数不会使用索引
怎么看是否使用了索引,使用explain执行计划关键词,下图展示的是使用了primary主键索引,row是1,影响的行数是1,row的值越低则查询效率越高