GoDaddy Hilfe

Wir haben die Seite für Sie so gut wie möglich übersetzt. Sie können sie sich aber auch auf Englisch ansehen.

Überprüfen Sie langsame MySQL-Abfragen

Sie haben die langsame Abfrageprotokollierung aktiviert und haben nun ein Protokoll zur Überprüfung. Wenn Sie die Protokollierung nicht aktiviert haben, finden Sie die Schritte hier .

Analysieren des Protokolls

Speicherort des Protokolls:
/var/log/slow-queries.log HINWEIS
: Wenn Sie an diesem Speicherort kein Protokoll finden, überprüfen Sie den Eintrag in my.cnf und ob MySQL nach der Änderung neu gestartet wurde.
Format:
# Uhrzeit: 210905 6:33:11 # Benutzer @ Host: dbuser [Datenbankname] @ Hostname [1.2.3.4] # Abfragezeit: 12.116250 Sperrzeit: 0.000035 Zeilenanzahl: 0 Zeilenprüfung: 201565 Datenbankname verwenden; SET-Zeitstempel = 1409898791; ... HIER LANGSAM ABFRAGEN ...

Das Protokoll kann überwältigend sein, wenn Sie Dutzende, wenn nicht Hunderte von Einträgen im obigen Format haben. Um das Protokoll lesbarer zu machen, analysieren Sie das Protokoll mit mysqldumpslow .

mysqldumpslow -r -a /var/log/mysql/mysqld.slow.log
Die Ausgabe enthält wichtige Informationen wie Uhrzeit , Zeilen und Abfrage .
Anzahl: 2 Zeit = 20.54 s (41 s) Sperre = 0.02 s (0 s) Zeilen = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDER BY site_id DESC LIMIT 0,2 Anzahl: 1 Zeit = 21,74 s (21 s) Sperre = 0,01 s (0 s) Zeilen = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDER BY site_id DESC LIMIT 0,2 Anzahl: 1 Zeit = 23.86s (23s) Lock = 0.20s (0s) Rows = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDER BY site_id DESC LIMIT 0,2

Das obige Beispiel zeigt eine Abfrage, für deren Ausführung 20 bis 24 Sekunden benötigt wurden. Dies führt zu Problemen mit Ihrer Website, die von langsamen Ladezeiten bis zu Timeout-Fehlern (Endlosschleudern) reichen. Die Abfrage prüft 12.547.802 Zeilen. Eine große Abfrage (also select *), die für eine Tabelle mit mehr als 12 Millionen Zeilen ausgeführt wird, führt wahrscheinlich zu einer schlechten Benutzererfahrung. Durch Optimieren der Abfrage (z. B. Auswählen von „Kaffeetischen“) oder Reduzieren der untersuchten Zeilen (z. B. Archivieren alter Daten) wird die Abfrage beschleunigt.

Ist die Protokolldatei sehr groß, führen Sie mysqldumpslow aus und speichern Sie die Ausgabe in einer Datei. Dies erleichtert die Überprüfung mit anderen Dateibearbeitungstools wie grep oder find .

mysqldumpslow -r -a /var/log/slow-queries.log > slow.log.parsed

Nächste Schritte

Nachdem Sie das Protokoll für langsame Abfragen überprüft haben, sollten Sie wissen, welche problematischen Abfragen behoben werden müssen. Wenn Ihre Website immer noch langsam läuft und MySQL hohe Ressourcen verbraucht, müssen Sie MySQL möglicherweise optimieren , um die Ressourcen Ihres Servers besser nutzen zu können.

Wenn Sie mit der Protokollierung fertig sind, deaktivieren Sie die langsame MySQL-Abfrageprotokollierung . Wenn Sie die Protokollierung aktiviert lassen, werden MySQL-Ressourcen unnötig beansprucht und Ihr Datenträger wird möglicherweise mit fehlerhaften Abfragen belegt.

GoDaddy Hosting-Services

Unsere Server-Experten können die langsame MySQL-Abfrageprotokollierung aktivieren / deaktivieren und MySQL optimieren. Wenn Sie mehr über diesen Service erfahren möchten, unsere GoDaddy-Guides helfen Ihnen gerne weiter.

Weitere Informationen

Weitere Informationen zu den Hosting-Services von GoDaddy finden Sie in unseremHosting-Services .