Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Nicht effizienter Ausführungsplan von MySQL InnoDB übernommen

MySQL kann IN nicht optimieren Unterabfrage führen soll (nur einmal ausgeführt), wird sie immer für jeden Datensatz in der Hauptabfrage in einer Schleife ausgeführt.

Ersetzen Sie es durch einen Join:

SELECT ahp.*
FROM   ar_records ar
JOIN   ah_problems ahp
ON     ahp.rnid = ar.rnid
       AND ahp.fieldId IN (5, 6)
WHERE  ar.rnid IN (6022342, 6256614, 5842714, 6302489)