sql >> データベース >  >> RDS >> Mysql

MySQLを使用して「exists」を含むSQLの実行が「in」よりも遅くなる理由

    少し混乱していると思います。間違った考えを持っています。「EXISTS」は「IN」よりも高速に動作します。その理由を理解してもらうようにしています。

    EXISTSはブール値を返し、最初の一致でブール値を返します。したがって、重複/倍数を処理している場合、データとニーズに応じて、「EXISTS」は「IN」または「JOIN」よりも実行が速くなります。

    一方、「IN」はOR句の構文糖衣です。非常に順応性がありますが、その比較のために多くの値(1,000の北)を処理することには問題があります。重複/倍数の場合、「IN」は存在するすべての値をチェックし、「EXISTS」よりも実行に時間がかかります。そのため、「IN」は常に「EXISTS」よりも比較的低速です。

    私はあなたの混乱を明らかにしたことを望みます。



    1. MySQLで2つのテーブルを結合する

    2. 前の行の値からの増加/減少率を計算します

    3. MYSQLのインストールの問題

    4. Oracleの数値関数(全リスト)