一个OR
使用单个键的优化很好,处理也是如此
AND
。
一个棘手的案例是搜索两个不同的键结合OR
:
SELECT field1_index, field2_index FROM test_table
WHERE field1_index = '1' OR field2_index = '1'
这个案例是优化过的。请参阅
第 8.2.1.3 节,“索引合并优化”。
您还可以通过使用
UNION
组合两个单独SELECT
语句的输出的 a 来有效地解决问题。请参阅第 13.2.10.3 节,“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';