索引失效的场景有以下几种:
1.联合索引非最左匹配:当使用联合索引时,未遵循最左匹配原则,则不能正常使用索引,也就是索引失效了
2.不当模糊查询:模糊查询 like 的常见用法有3种(只有第1种的会走索引,其他都会导致索引失效):
a.模糊匹配后面任意字符:like'张%'
b.模糊匹配前面任意字符:like'%张'
c.模糊匹配前后任意字符:like'%张%'
3.使用列运算:如果索引列使用了运算,那么索引也会失效。
4.使用函数:查询列如果使用任意 MySOL提供的函数就会导致索引失效,
5.类型转换:如果索引列存在类型转换,那么也不会走索引,比如某列为字符串类型,而查询的时候设置了 int类型的值就会导致索引失效。
6.使用 is not nul:当在查询中使用了 is not null 也会导致索引失效,而 is nul 则会正常触发索引的,
7.使用 or 操作符:当查询条件包含 or 连接的条件,索引也会失效。