索引合并,能不用就不要用吧!

索引合并,能不用就不要用吧!

💡 原文英文,约600词,阅读约需3分钟。
📝

内容提要

讨论了MySQL在搜索条件中包含两个字段且这两个字段都有独立索引时的处理方式,介绍了索引合并的概念和原理,包括对扫描结果求并集、交集和组合的方法。提及了索引合并的三种情况:Using intersect、Using union和Using sort_union。同时指出了索引合并可能带来的性能问题,并提供了解决方案。

🎯

关键要点

  • 讨论了MySQL在搜索条件中包含两个字段且这两个字段都有独立索引时的处理方式。

  • 介绍了索引合并的概念和原理,包括对扫描结果求并集、交集和组合的方法。

  • 提及了索引合并的三种情况:Using intersect、Using union和Using sort_union。

  • 指出了索引合并可能带来的性能问题,并提供了解决方案。

  • 使用explain关键字查看查询是否用到索引合并。

  • 索引合并的基本原理是对多个索引的扫描结果进行合并。

  • Using intersect用于对多个扫描结果求交集,要求二级索引为等值查询。

  • Using union用于求并集,要求二级索引为等值查询或组合索引覆盖所有列。

  • Using sort_union允许二级索引范围搜索,且复合索引不必覆盖所有列。

  • 索引合并可能导致性能下降,需审视索引创建是否合理。

  • 可以通过ignore index或optimizer_switch来控制索引合并的使用。

➡️

继续阅读