1. Was ist MySQL Query Slow Log
MySQL Query Slow Log ist MySQLs eigenes Leistungsanalysetool, mit dem Abfrageanfragen aufgezeichnet werden, die den angegebenen Zeitschwellenwert überschreiten. Das langsame Abfrageprotokoll zeichnet verschiedene Leistungsindikatoren für jede Abfrage auf, z. B. die erforderliche Zeit, die Anzahl der Ausführungen und den Ausführungsplan. Entwickler können diese Metriken verwenden, um Abfragen zu identifizieren, die optimiert werden müssen, um die Effizienz zu verbessern und entsprechende Maßnahmen zu ergreifen.
Standardmäßig ist das langsame Abfrageprotokoll von MySQL normalerweise nicht aktiviert und erfordert eine manuelle Konfiguration, um es zu aktivieren. Die Abfrage des langsamen Protokolls kann durch Festlegen von Parametern in der MySQL-Konfigurationsdatei (my.cnf) aktiviert werden. Das Folgende ist eine Beispielkonfiguration für die Abfrage langsamer Protokolle:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
log_queries_not_using_indexes = 1
long_query_time = 2
wobei die slow_ Der Parameter query_log wird verwendet Um das langsame Protokoll abzufragen, gibt der Parameter slow_query_log_file den Speicherort der langsamen Abfrageprotokolldatei an. Der Parameter log_queries_not_using_indexes wird verwendet, um nicht verwendete Informationen des langsamen Abfrageindex zu protokollieren. Der Parameter long_query_time wird verwendet, um das Abfrage-Timeout in Sekunden anzugeben.
2. So aktivieren Sie das MySQL-Protokoll für langsame Abfragen
Standardmäßig aktivieren MySQL 5.7 und höhere Versionen das Protokoll für langsame Abfragen. Eine manuelle Konfiguration ist erforderlich, um die Funktion „Query Slow Log“ zu aktivieren, insbesondere für ältere Versionen von MySQL, wie MySQL 5.6 oder 5.5 usw. Im Folgenden finden Sie die detaillierten Schritte zum Aktivieren des langsamen MySQL-Abfrageprotokolls:
Öffnen Sie die MySQL-Konfigurationsdatei
Standardmäßig lautet der Pfad der MySQL-Konfigurationsdatei im Linux-System /etc/my.cnf. In Windows-Systemen befindet sich die Konfigurationsdatei normalerweise in C:Program FilesMySQLMySQL Servermy.ini oder C:ProgramDataMySQLMySQL Servermy.ini. Öffnen Sie die Datei mit Ihrem bevorzugten Editor.
Abfrage-Slow-Log aktivieren
Suchen Sie die folgende Zeile in der Konfigurationsdatei:
Entfernen Sie das Kommentarsymbol # in dieser Zeile und ändern Sie den Wert auf 1.
slow_query_log = 1
Geben Sie den Pfad der langsamen Protokolldatei an
Suchen Sie die folgende Zeile:
Entfernen Sie das Kommentarsymbol # in dieser Zeile , und ändern Sie den Dateipfad in den gewünschten Pfad. " Ändern Sie den Wert auf den gewünschten Abfrage-Timeout-Schwellenwert in Sekunden.
long_query_time = 2
Konfigurieren Sie den Schalter für nicht verwendete Indexinformationen.
Suchen Sie die folgende Zeile:
log_queries_not_using_indexes = 0
log_queries_not_using_indexes = 1
Speichern und schließen Sie die Konfigurationsdatei.
Starten Sie den MySQL-Dienst neu.
sudo systemctl restart mysqld Langsames Protokoll abfragen, dann abfragen Das langsame Protokoll zeichnet automatisch Abfrageinformationen auf und speichert sie in der angegebenen Abfrage-langsamen Protokolldatei. Sie können den folgenden Befehl verwenden, um das Protokoll für langsame Abfragen anzuzeigen:
Verwenden Sie diesen Befehl, um die neuesten 100 Protokolleinträge für langsame Abfragen anzuzeigen. Sie können auch die Anzahl der angezeigten Zeilen nach Ihren Wünschen ändern. Die Ausgabe umfasst die Zeit, die zum Ausführen der langsamen Abfrage erforderlich ist, sowie alle an der Abfrage beteiligten Datentabellen und Unterabfragen.
grep „21-Jun-2022“ /var/log/mysql/mysql-slow .log |. awk '{print substr($2,0,length($2)-1)" "$3$4" "$5}' |. Dieser Befehl gibt am 21. Juni 2022 alle Zeitstempel aus, die langsame Abfrageprotokolle enthalten.
Nachdem Sie genügend langsame MySQL-Abfrageprotokolle gesammelt haben, können Sie diese analysieren, um die Abfragen zu ermitteln, die optimiert werden müssen. Hier sind einige Best Practices zum Analysieren und Optimieren der Abfrageleistung:
Parsen Sie langsame Abfrageprotokolle mit pt-query-digest.
pt-query-digest ist eine Open-Source-Software, die Ihnen bei der Analyse langsamer MySQL-Abfrageprotokolle helfen kann die dabei auftretenden Probleme zu optimieren. Hier sind die Schritte zur Installation und Verwendung von pt-query-digest:
Percona Toolkit installieren
Unter CentOS 7 können Sie es mit dem folgenden Befehl installieren.
yum installiere https://repo.percona.com/yum/percona-release-latest.noarch.rpmyum installiere percona-toolkit
Protokolle langsamer Abfragen analysieren
Sie können den folgenden Befehl verwenden, um pt-query-digest zum Parsen langsamer Abfrageprotokolle zu verwenden.
pt-query-digest /var/log/mysql/mysql-slow.log > slow-query-analysis.out
Analysieren Sie das Abfrage-Slow-Log
Verwenden Sie pt-query-digest, um eine detaillierte Abfrage zu erhalten Analysebericht zu langsamen Abfrageprotokollen. Sie können nach den Abfragen suchen, die am häufigsten auftreten und die längsten Zeitüberschreitungen aufweisen, und diejenigen identifizieren, die optimiert werden müssen.
Indexfelder verwenden
Das MySQL-Protokoll für langsame Abfragen zeichnet alle Abfragen auf, bei denen der Index fehlgeschlagen ist. Mithilfe dieser Informationen können Sie ermitteln, welche Abfragen keine geeigneten Feldindizes verwenden, um die Abfrage zu beschleunigen. Durch das Hinzufügen von Indizes in MySQL kann die Abfrageleistung erheblich optimiert werden. Es ist wichtig zu beachten, dass das Hinzufügen zu vieler Indizes die Abfrageleistung beeinträchtigen kann, da dadurch die Kosten für Abfrageanforderungen und Aktualisierungsvorgänge steigen können.
Abfrageanweisungen optimieren
Das Protokoll zur langsamen Abfrage kann Ihnen sagen, welche Abfragen optimiert werden müssen. Wenn die Ausführungszeit den eingestellten Schwellenwert überschreitet, wird die Abfrage in der Protokolldatei aufgezeichnet. Sie können die Abfrageanweisung überprüfen und versuchen, verschiedene Abfrageanweisungen zu verwenden, um die Ausführungsgeschwindigkeit zu optimieren.
Verwendung des Caching-Mechanismus
Der Caching-Mechanismus kann die Abfragegeschwindigkeit erheblich verbessern. Wenn die Abfrageergebnisse bereits im Cache gespeichert sind, können Sie die Abfrageausführung und den Ressourcenaufwand vermeiden und die Ergebnisse direkt zurückgeben. Caching-Mechanismen können mithilfe von Cache-Anbietern wie Redis und Memcached implementiert werden.
MySQL-Serverparameter anpassen
Die Leistung des MySQL-Servers kann durch Anpassen verschiedener Parameter optimiert werden, um die gesamte Datenbank zu optimieren. Zu diesen Parametern gehören die MySQL-Cache-Größe, das Verbindungslimit, das Abfrage-Timeout usw. Durch Anpassen dieser Parameter kann die Leistung des Datenbankdienstes für bestimmte Abfragen optimiert werden.
Das obige ist der detaillierte Inhalt vonSo aktivieren Sie das langsame MySQL-Abfrageprotokoll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!