MySQL中哪些情况下会索引失效,所有条件全部囊括

当我们的列涉及到范围的会失效,比如age>20会导致status索引失效,但是age>=20会让索引status不会失效

当我们在索引中使用了函数索引也会失效,假如phone有索引

这么写语句的话索引就会失效,因为使用了substring函数

当我们在字符串为条件索引时候假如忘记加单引号,索引也会失效

当模糊查询的时候,尾部模糊匹配的话索引不会失效,假如是头部的话就会失效

走索引

不走索引

当使用or关键字的时候,任何一边没有使用索引,索引就会失效

这里我只有id有索引,age没有索引,但是执行的时候发现id也没有利用索引

最后一种情况,就是MySQL是有个执行优化器的会判断是否走索引,如果走索引需要遍历的数据还是非常多,甚至还是要回表,不如自己去走全表扫描了,这个时候优化器就会不用索引去查询数据就会导致索引失效

全部评论

相关推荐

09-13 17:22
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务