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
有效率地解決問題,此 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';