扫码阅读
手机扫码阅读
什么Mysql索引失效,一文教你读懂Mysql索引使用规则和失效原因
169 2024-07-17
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章来源:
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. 思考题
一个查询示例满足最左前缀法则,表明即便查询条件书写顺序不同,只要涉及到的联合索引的最左字段存在,索引即有效。
文章结语鼓励读者关注、点赞和分享,以支持作者。
想要了解更多内容?
文章来源:
springboot葵花宝典
扫码关注公众号
springboot葵花宝典的其他文章
Seata:分布式事务管理代码实现
Seata:分布式事务管理代码实现
SpringMVC-2-Spring MVC拦截器详解:从入门到精通
Spring MVC拦截器是Spring框架提供的一种功能强大的机制,用于在请求处理过程中进行预处理和后处理操作。它可以帮助开发人员在不修改原始处理器方法的情况下,添加通用的功能和逻辑。
Web-7-深入理解Cookie与Session:实现用户跟踪和数据存储
Cookie和Session是常用的Web会话管理技术。Cookie是存储在浏览器中的小型文本文件,用于跟踪和存储用户信息。Session是服务器端通过唯一标识符来跟踪用户会话状态的机制,通常将数据存储在服务器上
web-5-深入理解Servlet中的请求与响应对象
在 Servlet 中,请求对象(Request)和响应对象(Response)是处理客户端请求和返回服务器响应的关键对象n
SpringCloud简述
主要介绍了一下什么是SpringCloud,已经经常使用的各个组件的简介,后续开始SpringCloud系列教程
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线