扫码阅读
手机扫码阅读
什么Mysql索引失效,一文教你读懂Mysql索引使用规则和失效原因
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
springboot葵花宝典
扫码关注公众号
MySQL索引失效原因概要
本文旨在教读者理解MySQL索引的使用规则和失效原因,继续昨天关于MySQL索引创建语法和SQL性能分析的讨论。
1. 验证MySQL索引效率
通过对tb_sku表(含有1000万数据)的查询实验,发现使用主键id(索引)查询数据迅速,而未索引的字段sn查询则耗时,显示索引能显著提升查询效率。在sn字段上创建索引后,查询性能得到大幅提升。
2. 最左前缀原则
最左前缀原则要求查询从索引的最左列开始,不跳过索引中的列。跳过中间某列会导致该列及其后面的索引失效。实例演示了在联合索引user_pro_age_sta_index中,只要最左边字段profession存在,索引即生效;若跳过中间某列,则后续列的索引不生效。
3. 范围查询
在联合索引中,范围查询(如使用>, <)会导致范围条件右侧字段的索引失效,而使用>=或<=则不会。
4. 索引失效情况
- 索引列运算:在索引列上进行运算会导致索引失效。
- 字符串不加引号:对字符类型字段不加引号会导致索引失效。
- 模糊查询:头部模糊匹配(%在前)会使索引失效,而尾部模糊匹配(%在后)则索引有效。
- or连接条件:使用or连接时,如果连接的两侧字段都有索引,则索引有效;否则失效。
- 数据分布影响:当全表扫描比使用索引更快时,MySQL会放弃使用索引。
5. 思考题
一个查询示例满足最左前缀法则,表明即便查询条件书写顺序不同,只要涉及到的联合索引的最左字段存在,索引即有效。
文章结语鼓励读者关注、点赞和分享,以支持作者。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
springboot葵花宝典
扫码关注公众号
springboot葵花宝典的其他文章
云计算--Docker搭建Nacos以及搭建过程中常用的Docker命令
云计算--Docker搭建Nacos以及搭建过程中常用的Docker命令
云计算--Docker典型命令Docker run部署nginx\mysql\redis
云计算--Docker典型命令Docker run部署nginx\x5cmysql\x5credis
SpringSecurity-10-Session会话管理
SpringSecurity-10-Session会话管理理解
SpringBoot-10-全局异常
本文介绍SpringBoot的全局异常统一处理。
探索分布式事务解决方案:八种方案解析
探索分布式事务解决方案:八种方案解析
加入社区微信群
与行业大咖零距离交流学习
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
软件研发质量管理体系建设
白皮书上线