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

mysqlクエリのSELECT内でSELECTを使用する

    MySQLでは、このようなサブクエリを実行することは「相関クエリ」です。これは、外側のSELECTの結果を意味します 内部のSELECTの結果に依存します 。その結果、内部クエリは行ごとに1回実行されますが、これは非常に低速です。

    このクエリをリファクタリングする必要があります。 2回参加するか、2つのクエリを使用するかは、ほとんど関係ありません。 2回参加すると、次のようになります。

    SELECT something
    FROM posts
    INNER JOIN tag_map ON tag_map.id = posts.id
    INNER JOIN tags ON tags.tag_id = tag_map.tag_id
    WHERE tags.tag IN ('tag1', ...)
    

    詳細については、サブクエリのJOINへの変換に関するMySQLマニュアルを参照してください。

    ヒント:EXPLAIN SELECT オプティマイザがクエリの処理をどのように計画しているかを示します。 DEPENDENT SUBQUERYが表示された場合 リファクタリングする必要があります。これらは非常に遅いです。



    1. テーブルをPostgreSQLとマージするための完全外部結合

    2. after_createでカスタムDDLを発行するためにalembicを取得するにはどうすればよいですか?

    3. MYSQLで2点間の距離を見つけます。 (ポイントデータ型を使用)

    4. AzureWebアプリに接続できません-NodeJSをAzureMysqlに接続します