sql >> Databasteknik >  >> RDS >> Mysql

MySQL - SELECT WHERE field IN (subquery) - Extremt långsam varför?

Underfrågan körs för varje rad eftersom det är en korrelerad fråga. Man kan göra en korrelerad fråga till en icke-korrelerad fråga genom att välja allt från underfrågan, som så:

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

Den slutliga frågan skulle se ut så här:

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. Exempel på formatering av "datetimeoffset" i SQL Server med standardformatsträngar (T-SQL)

  2. Vad gör sp_reset_connection?

  3. Hämta pl/sql-arrayreturvärden i java

  4. Vad är storleken på kolumnen av int(11) i mysql i byte?