使用单个键的 OR 得到了很好的优化,AND 的处理也是如此。
一个棘手的情况是搜索结合 OR 的两个不同的键:
SELECT field1_index, field2_index FROM test_table
WHERE field1_index = '1' OR field2_index = '1'
本案例优化。
您还可以通过使用结合了两个单独的 SELECT 语句的输出的 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';