面试题答案
一键面试- Intersection(交集):
- 工作原理:从多个索引中分别获取符合各自条件的记录行指针,然后通过求这些指针集合的交集,找到同时满足多个索引条件的记录。例如,表中有
col1
和col2
两个列分别建有索引,查询条件为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 先从多个索引获取符合各自条件的记录指针并进行并集操作,然后对合并后的结果集按指定的排序规则进行排序,以满足查询对结果顺序的要求。
- 工作原理:当使用