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

MySQLのパフォーマンス-単一値のIN句と等しい(=)

    他の答えのほとんどは、決定的なものを提供するものではなく、単なる推測です。したがって、@Namphibianの回答からの良いアドバイス に基づいています 、EXPLAINを実行しました OPのクエリと同様のクエリで。

    結果は以下のとおりです。

    EXPLAIN = 1のクエリの場合 :

    EXPLAIN IN(1)を使用したクエリの場合 :

    EXPLAIN IN(1,2,3)を使用したクエリの場合 :

    ご覧のとおり、MySQLはIN(1)を最適化します = 1と同じになります この種のクエリでは。 @mesの回答 ただし、これは、より複雑なクエリでは常に当てはまるとは限らないことを示しているようです。

    したがって、怠惰すぎてEXPLAINを実行できない人のために 彼ら自身、今あなたは知っています。はい、EXPLAINを実行することをお勧めします あなた自身のクエリで、それがこのように処理されることを確認してください。 :-)



    1. PDOを使用したデータベース内の行の一致に問題がある

    2. 複数の列のチェック制約

    3. SQL SELECT LIKE(インセンシティブケーシング)

    4. hasmany関係によるLaravelの注文