MySQL 8.4 发行说明
使用单个键的 OR
已得到很好的优化,AND
的处理也是如此。
唯一棘手的情况是将两个不同的键与 OR
结合进行搜索。
SELECT field1_index, field2_index FROM test_table
WHERE field1_index = '1' OR field2_index = '1'
此情况已优化。请参见 第 10.2.1.3 节,“索引合并优化”。
您还可以通过使用 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';