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