MySQL のパフォーマンス: 単一値の「IN」句と等号 (=)
WHERE を使用して MySQL で SELECT クエリを実行する場合単一の値でフィルター処理する句を使用する場合は、「IN」句を使用するか等号 (=) 演算子を使用するかを検討する価値があります。この質問では、各アプローチを使用した場合のパフォーマンスへの影響について調査します。
パフォーマンスの比較
パフォーマンスへの影響を判断するには、両方のアプローチを使用したクエリの EXPLAIN ステートメントの結果を分析できます。 「IN」句と等号演算子。結果は次のとおりです。
「=」を使用したクエリ 1:
「IN」(1) を使用したクエリ:
"IN"(1,2,3) を使用したクエリ:
これらの結果に基づいて、MySQL は単一の値を使用して "IN" 句を最適化し、次と同じように実行すると結論付けることができます。等しい比較。具体的には、範囲スキャンではなくインデックス スキャンを使用するため、パフォーマンスが向上します。
結論
単一の値でフィルター処理する WHERE 句を含むクエリの場合、 「IN」句と等号演算子はどちらも同様に実行されます。 MySQL は、等価比較のように動作するように「IN」句を最適化し、同じレベルのパフォーマンスを提供します。したがって、ほとんどの場合、パフォーマンスの違いは無視できるため、リスト内の値の数が 1 かどうかを判断するために追加のチェックを実行する必要はありません。
以上が「IN」句は、MySQL SELECT クエリの単一値に対して「=」と同じくらい効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。