mysql索引失效的原因

本文探讨了MySQL查询性能优化的关键点,包括避免在索引列上进行计算和类型转换,利用覆盖索引减少数据读取,以及避免使用不等于、左模糊和ISNULL操作符。同时,强调了正确使用单引号、避免OR连接和注意LIKE操作符的位置对于索引有效性的关键作用。全值匹配和复合索引的合理应用也是提高查询速度的重要手段。

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

1.不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描

2.尽量使用覆盖索引(只访问索引的查询(索引列和查询咧一致)),减少select*

3.mysql在使用不等于(!=、<>)或like的左模糊查询的时候无法使用索引会导致全表扫描

4.IS NULL 和 is not null 也无法使用索引

5.字符串不加单引号索引失效,因为这里有一个隐式的类型的转换操作,更严重会导致行锁变表锁,降低sql效率

6.少用or ,用它来连接时索引会失效   

7.%不能在左边

8.全值匹配我最爱

       建立几个复合索引字段,最好就用上几个字段。且按照顺序使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值