【MySQL】面试题之mysql索引失效的几种情况

本文详细介绍了MySQL数据库在索引使用上的最佳实践,包括最左前缀原则、避免函数和运算符、不等于与IS NULL操作的影响,以及LIKE查询和OR条件下的索引失效问题。理解并遵循这些原则能显著提升查询效率,避免全表扫描。
摘要由CSDN通过智能技术生成

学习来源: link.

  1. 最佳左前缀原则——如果索引了多列,要遵守最左前缀原则。指的是查询要从索引的最左前列开始并且不跳过索引中的列。
  2. 不在索引列上做任何操作(计算,函数,(自动或者手动)类型装换),会导致索引失效而导致全表扫描
    在这里插入图片描述
  3. 存储引擎不能使用索引中范围条件右边的列,范围之后索引失效。(< ,> between and)
    在这里插入图片描述
  4. mysql使用不等于(!= 或者<>)的时候,无法使用索引,会导致索引失效 在这里插入图片描述
  5. mysql中使用is not null 或者 is null会导致无法使用索引
    在这里插入图片描述
  6. mysql中like查询是以%开头,索引会失效变成全表扫描,覆盖索引。
  7. mysql中,字符串不加单引号索引会失效。正确写法:select * from t_user where username = ‘lujin’;错误写法:select * from t_user where username = lujin;
  8. mysql中,如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)。要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引
  9. 如果mysql使用全表扫描要比使用索引快,则不会使用到索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值