MySQL 9.0 参考手册  /  ...  /  使用两个键搜索

5.6.7 使用两个键搜索

使用单个键的 OR 以及 AND 的处理都得到了很好的优化。

一个棘手的情况是在两个不同的键上搜索并结合使用 OR

SELECT field1_index, field2_index FROM test_table
WHERE field1_index = '1' OR  field2_index = '1'

这种情况已得到优化。请参阅 第 10.2.1.3 节“索引合并优化”

您还可以通过使用 UNION 来有效地解决该问题,该 UNION 合并了两个单独的 SELECT 语句的输出。请参阅 第 15.2.18 节“UNION 子句”

每个 SELECT 只搜索一个键,并且可以进行优化

SELECT field1_index, field2_index
    FROM test_table WHERE field1_index = '1'
UNION
SELECT field1_index, field2_index
    FROM test_table WHERE field2_index = '1';