Mysql
 sql >> Database >  >> RDS >> Mysql

Piano di esecuzione non efficiente preso da MySQL InnoDB

MySQL non è possibile ottimizzare il IN subquery deve essere iniziale (eseguita una sola volta), viene sempre eseguita per ogni record nella query principale in un ciclo.

Sostituiscilo con un 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)