MySQL的索引合并

2021/12/26 2:07:17

本文主要是介绍MySQL的索引合并,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Intersection合并

合并逻辑

SELECT * FROM test WHERE name = 'a' AND rmk = 'b';

  • 从第一个索引中获取相关的记录
  • 从第二个索引中获取相关的记录
  • 筛选俩次结果ID相同的
  • 回表查询

触发的必然条件(满足该条件可能触发,但是更大的可能性不触发)

  • 等值匹配
  • 主键列可以是范围匹配:可以用二级索引排序后,进行回表查询

Union合并

  • 等值匹配
  • 主键列可以是范围匹配
  • 使用Intersection索引合并的搜索条件:合并后继续合并

Sort-Union合并

SELECT * FROM test WHERE name > 'a' AND rmk < 'b';

  • 从第一个索引中获取相关的记录,ID排好序
  • 从第二个索引中获取相关的记录,ID排好序
  • 筛选俩次结果ID相同的
  • 回表查询

联合索引替代Intersection索引合并

SELECT * FROM test WHERE name = 'a' AND rmk = 'b';

  • 这个sql可以直接创建一个name,rmk的联合索引来优化!


这篇关于MySQL的索引合并的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程