1 つのキーを使用した OR
の処理は、AND
の処理と同様にかなり最適化されています。
注意が必要なのは、OR
で結合された 2 つの異なるキーを使用して検索する場合です。
SELECT field1_index, field2_index FROM test_table
WHERE field1_index = '1' OR field2_index = '1'
この場合は最適化されています。 セクション8.2.1.3「インデックスマージの最適化」を参照してください。
2 つの異なる SELECT
ステートメントの出力を結合する UNION
を使用することでも、この問題を効率的に解決できます。 セクション13.2.10.3「UNION 句」を参照してください。
各 SELECT
は 1 つのキーだけを検索するため、最適化できます。
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';