Ü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
# 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.logDie 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, eine GoDaddy-Anleitung hilft Ihnen weiter.