面试官再问你,mysql索引什么时候失效,你偷偷的笑了

本文总结了MySQL中导致索引失效的一些常见原因,包括复合索引的左前缀原则、全索引匹配的重要性、避免对索引字段的操作、IN与EXISTS的选择、子查询的影响,以及LIKE和OR条件的使用注意事项。了解这些知识点能帮助优化查询效率,避免索引失效带来的性能损失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引失效原因总结

复合索引使用左前缀

建立了一个索引分别字段为 a b c

where a … and b … order by c,这种使用顺序就符合最佳做前缀,从左向右依次使用了索引

where b … and a … order by c,这样很明显顺序不对,并不满足最佳左前缀,从而导致了索引失效

复合索引尽量使用全索引匹配

建立了一个复合索引 a b c,在查询的时候,尽量把这些索引字段都用上
不要在索引上进行任何操作(计算(+,-,*,/)、函数、(自动或手动)类型转换)
如果你在索引上进行任何操作,索引就必将失效。

比如你对索引进行加减乘除计算,进行一些函数计算,或进行一些类型转换,在这种情况下,索引都会失效

假设有 a b c 这些字段是复合索引,给 a 字段进行乘法操作,那么b c 字段都将会失效

in 与 extsts

一般式:外表大,用IN;内表大,用EXISTS。

非关联子查询&#

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值