Mysql
 sql >> Base de données >  >> RDS >> Mysql

Plan d'exécution pas efficace pris par MySQL InnoDB

MySQL impossible d'optimiser le IN sous-requête en tête (exécutée une seule fois), elle est toujours exécutée pour chaque enregistrement de la requête principale dans une boucle.

Remplacez-le par une jointure :

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)