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

Langsame MySQL-Abfrage mit Join, obwohl EXPLAIN einen guten Plan zeigt

Ich bin kein Experte auf diesem Gebiet, aber hier sind ein paar Gedanken:

Abfragegeschwindigkeit dauert länger, wenn g.F2 Änderungen sind wegen Caching. MySQL speichert die Ergebnisse für jede Abfrage (bis der Cache voll ist), aber neue Abfragen werden auf einem leeren Cache ausgeführt, sodass sie länger dauern. Sie sollten nicht darauf basierend optimieren. (Siehe How to genau messen )

Ich kann Ihren Angaben nicht entnehmen, ob das g oder gp Tabelle hat eine größere Spezifität (scheint wie gp ?) im where -Klausel, aber Sie können stattdessen eine Unterabfrage ausprobieren. (Siehe Wie man erzwingt, dass die innere Abfrage zuerst ausgeführt wird )

In Bezug auf die Profilerstellung ist es möglich, dass Sie eine physische Schwelle erreichen, z. B. das Überschreiten der RAM-Zuweisung (die Verwendung von Swap ist katastrophal für die Leistung), die aus explain nicht ersichtlich wäre , oder ob explain ist in diesem Fall einfach falsch.