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

SQL-Abfrage bleibt im Statistikstatus hängen

Ich bin kürzlich auf das gleiche Problem gestoßen:MySQL begann bei Abfragen mit vielen miteinander verbundenen Tabellen zu würgen (im Zustand „Statistiken“ hängen zu bleiben). Ich habe einen guten Blogbeitrag erklären, warum dies passiert und wie man es löst.

Grundsätzlich zumindest in MySQL 5.5 der Standardwert für den Konfigurationsparameter optimizer_search_depth ist 62, was dazu führt, dass der Abfrageoptimierer exponentiell mehr Zeit benötigt, wenn die Anzahl der Tabellen in der Abfrage zunimmt. Ab einem bestimmten Punkt dauert es Tage oder länger, bis die Abfrage abgeschlossen ist.

Wenn Sie jedoch optimizer_search_depth festlegen auf 0 in Ihrer my.cnf , MySQL wählt automatisch eine geeignete Tiefe aus, begrenzt sie jedoch auf 7, was noch nicht zu komplex ist.

Anscheinend wurde dieses Problem behoben in MySQL 5.6, aber ich habe es noch nicht selbst getestet.