一 、索引失效的情景
1、where字句中,含有!= 、<>
2、where字句中,is null判断
尽量考虑字段使用not null约束 + 预设值,如0、""
3、where字句中,使用or条件
必要时可以考虑使用union all 对多个查询结果进行合并
4、where字句中,避免使用like 做全字段模糊匹配,如'%aa%'
而'aa%'则会命中前缀索引
5、where字句中,慎用 in 和 not in,概率性出现索引失效
如是连续的数值,最好用between替代,如 a in (1,2,3) 可考虑写成 a between 1 and 3
6、where字句中,出现对字段运算
如函数A(column)=条件,应尽量转换为column=函数B(条件)
7、表中的索引列出现大量重复数据
如用户信息表的性别字段,其中男、女比例各占一半,需要考量该是否需要定义索引
8