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

Requête lente MySQL avec jointure même si EXPLAIN montre un bon plan

Je ne suis pas un expert dans ce domaine, mais voici quelques réflexions :

La vitesse de requête prend plus de temps lorsque g.F2 les modifications sont dues à la mise en cache. MySQL enregistrera les résultats de chaque requête (jusqu'à ce que le cache soit plein), mais les nouvelles requêtes sont exécutées sur un cache vide, elles prennent donc plus de temps. Vous ne devriez pas optimiser sur cette base. (Voir Comment mesurer avec précision )

Je ne peux pas dire à partir de vos informations si le g ou gp table a une plus grande spécificité (semble comme gp ?) dans le where clause, mais vous pouvez essayer une sous-requête à la place. (Voir Comment forcer la requête interne à s'exécuter en premier )

En ce qui concerne le profilage, il est possible que vous atteigniez un seuil physique comme le dépassement de l'allocation de RAM (l'utilisation de swap est désastreuse pour les performances) qui ne serait pas évident d'après explain , ou si explain est tout simplement faux dans ce cas.