扫码阅读
手机扫码阅读
索引合并,能不用就不要用吧!
99 2024-11-02
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:索引合并,能不用就不要用吧!
文章来源:
江南一点雨
扫码关注公众号
MySQL索引合并技术解析
本文介绍了TienChin视频项目的完成,并探讨了MySQL中当搜索条件包含两个有独立索引的字段时,数据库是如何处理查询的。
1. 问题重现
使用MySQL官方测试数据,作者展示了一个包含两个索引的表结构,并通过执行一个涉及这两个索引的查询来引出问题:这个查询是否会使用到索引?通过EXPLAIN
命令得出的结果显示,查询计划使用了index_merge
的方式,即索引合并。
2. 索引合并
索引合并是MySQL处理多索引搜索条件的一种方式,它可以通过求并集、交集或这两者的组合来合并多个索引扫描的结果。文档中给出了四个可能使用索引合并的例子,并指出并非所有情况都会自动触发索引合并,有时需要通过调整查询条件来实现。
需要注意的是,索引合并不适用于全文索引。在执行计划中,如果使用了索引合并,Extra
字段会标示为Using intersect(...)
、Using union(...)
或Using sort_union(...)
,分别对应求交集、并集或排序后的并集。
2.1 Using intersect(...)
当涉及多个索引并需要求交集时,会触发Using intersect
。这要求二级索引必须是等值查询,并且如果是复合索引,则查询必须覆盖到所有列。而对于主键索引,范围查询也是可以的。
文章通过具体实例和官方文档解释了索引合并的概念,并讨论了MySQL是如何利用索引合并技术来优化查询性能的。
想要了解更多内容?
查看原文:索引合并,能不用就不要用吧!
文章来源:
江南一点雨
扫码关注公众号
江南一点雨的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线