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

MySQL-SELECT WHEREフィールドIN(サブクエリ)-非常に遅い理由

    サブクエリは相関クエリであるため、行ごとに実行されています。次のように、サブクエリからすべてを選択することで、相関クエリを非相関クエリにすることができます。

    SELECT * FROM
    (
        SELECT relevant_field
        FROM some_table
        GROUP BY relevant_field
        HAVING COUNT(*) > 1
    ) AS subquery
    

    最終的なクエリは次のようになります:

    SELECT *
    FROM some_table
    WHERE relevant_field IN
    (
        SELECT * FROM
        (
            SELECT relevant_field
            FROM some_table
            GROUP BY relevant_field
            HAVING COUNT(*) > 1
        ) AS subquery
    )
    


    1. PostgreSQL:全文検索-部分的な単語を検索する方法は?

    2. SQL Server(T-SQL)で角かっこを使用して負の値をフォーマットする方法

    3. 6000万エントリ、特定の月からのエントリを選択します。データベースを最適化する方法は?

    4. sys.dm_exec_describe_first_result_set_for_objectがSQLServerでどのように機能するか