MST
星途 面试题库

面试题:MySQL索引合并优化中常见的索引合并类型有哪些

在MySQL索引合并优化技术里,通常会涉及多种索引合并类型,请详细阐述都有哪些常见的索引合并类型,并简单说明每种类型的工作原理。
30.4万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试
  • Intersection(交集)
    • 工作原理:从多个索引中分别获取符合各自条件的记录行指针,然后通过求这些指针集合的交集,找到同时满足多个索引条件的记录。例如,表中有 col1col2 两个列分别建有索引,查询条件为 WHERE col1 = 'value1' AND col2 = 'value2',MySQL 会从 col1 索引获取满足 col1 = 'value1' 的记录指针集合,从 col2 索引获取满足 col2 = 'value2' 的记录指针集合,最后求这两个集合的交集,得到最终符合条件的记录。
  • Union(并集)
    • 工作原理:从多个索引中分别获取符合各自条件的记录行指针,接着将这些指针集合进行合并(并集操作)。适用于查询条件为 OR 连接的情况,如 WHERE col1 = 'value1' OR col2 = 'value2',MySQL 会分别从 col1 索引获取满足 col1 = 'value1' 的记录指针,从 col2 索引获取满足 col2 = 'value2' 的记录指针,然后将这两个指针集合合并成一个结果集。
  • Sort - Union(排序 - 并集)
    • 工作原理:当使用 UNION 类型的索引合并时,如果结果集需要按顺序返回(例如查询中有 ORDER BY 子句),就会使用 Sort - Union。MySQL 先从多个索引获取符合各自条件的记录指针并进行并集操作,然后对合并后的结果集按指定的排序规则进行排序,以满足查询对结果顺序的要求。