Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL-Abfrage langsames Protokoll

WBOY
Freigeben: 2023-05-14 10:05:37
Original
5133 Leute haben es durchsucht

MySQL ist ein häufig verwendetes relationales Datenbankverwaltungssystem mit guter Leistung und Skalierbarkeit bei der Verarbeitung großer Datenmengen, wobei Abfragen zu den am häufigsten verwendeten Vorgängen gehören. Bei der Verarbeitung großer Datenmengen können Abfragen jedoch aus verschiedenen Gründen langsam ausgeführt werden, was sich auf die Systemleistung auswirkt. In diesem Fall müssen Sie das langsame Abfrageprotokoll von MySQL verwenden, um Probleme mit der Abfrageleistung zu identifizieren und zu optimieren. In diesem Artikel werden die Grundkenntnisse und die Anwendung der langsamen Protokollabfrage von MySQL ausführlich vorgestellt.

1. Was ist MySQL Query Slow Log?

MySQL Query Slow Log ist ein Leistungsanalysetool, das mit MySQL geliefert wird und zum Aufzeichnen von Abfrageanfragen verwendet wird, die den angegebenen Zeitschwellenwert überschreiten . Das Protokoll zur langsamen Abfrage zeichnet verschiedene Leistungsindikatoren für jede Abfrage auf, einschließlich erforderlicher Zeit, Anzahl der Ausführungen, Ausführungsplan usw. Anhand dieser Metriken können Entwickler erkennen, welche Abfragen aus Effizienzgründen optimiert werden müssen, und entsprechende Maßnahmen ergreifen.

Im Allgemeinen ist das langsame MySQL-Abfrageprotokoll standardmäßig nicht aktiviert und muss manuell konfiguriert werden, um es zu aktivieren. In der MySQL-Konfigurationsdatei (my.cnf) können Sie die Parameter der Konfigurationsdatei festlegen, um das Abfrage-Slow-Log zu aktivieren. Das Folgende ist eine Beispielkonfiguration für die Abfrage des langsamen Protokolls:

slow_query_log = 1

slow_query_log_file = /var/log/mysql/mysql-slow.log

# 🎜🎜 #log_queries_not_using_indexes = 1

long_query_time = 2

Unter anderem wird der Parameter slow_query_log verwendet, um langsame Abfrageprotokolle zu aktivieren, und der Parameter slow_query_log_file gibt den Speicherort des langsamen Abfrageprotokolls an In der Datei „Log_queries_not_using_indexes“ wird der Parameter „log_queries_not_using_indexes“ für die Protokollierung nicht verwendeter Informationen zum langsamen Abfrageindex verwendet. Der Parameter „long_query_time“ wird verwendet, um das Abfrage-Timeout in Sekunden anzugeben.

2. So aktivieren Sie das Protokoll für langsame MySQL-Abfragen

In MySQL 5.7 und höheren Versionen ist das Protokoll für langsame MySQL-Abfragen standardmäßig aktiviert. Für ältere Versionen von MySQL, wie MySQL 5.6 oder 5.5, ist eine manuelle Konfiguration erforderlich, um die Funktion „Query Slow Log“ zu aktivieren. Im Folgenden sind die detaillierten Schritte zum Aktivieren des langsamen Protokolls für MySQL-Abfragen aufgeführt:

    Öffnen Sie die MySQL-Konfigurationsdatei
In Linux-Systemen die Standardkonfigurationsdatei für MySQL befindet sich /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.

    Query Slow Log aktivieren
Suchen Sie die folgende Zeile in der Konfigurationsdatei:

slow_query_log = 0#🎜 🎜 #

Entfernen Sie das Kommentarsymbol # aus dieser Zeile und ändern Sie den Wert auf 1.

slow_query_log = 1

Geben Sie den langsamen Protokolldateipfad an
  1. Suchen Sie die folgende Zeile:
#🎜 🎜#slow_query_log_file = /var/log/mysql/mysql-slow.log

Entfernen Sie das Kommentarsymbol # aus dieser Zeile und ändern Sie den Dateipfad in den gewünschten Pfad.

slow_query_log_file = /var/log/mysql/mysql-slow.log

Abfrage-Timeout konfigurieren

  1. Suchen die folgende Zeile:
long_query_time = 10

Entfernen Sie das Kommentarsymbol # aus dieser Zeile und ändern Sie den Wert auf Ihren gewünschten Abfrage-Timeout-Schwellenwert in Sekunden.

long_query_time = 2

Konfigurieren Sie den Schalter, um nicht verwendete Informationen zu indizieren

  1. Suchen Sie die folgende Zeile: #🎜🎜 #

log_queries_not_using_indexes = 0

  • Entfernen Sie das Kommentarsymbol # aus dieser Zeile und ändern Sie den Wert auf 1, um die Protokollierung zu aktivieren ungenutzte langsame Abfrageindizes in Vorgängen.

  • log_queries_not_using_indexes = 1

Konfigurationsdatei speichern und schließen

    Überprüfen Sie, ob die Konfigurationsdatei gespeichert wurde und Schließen Sie das Dokument.
MySQL-Dienst neu starten

    Verwenden Sie den folgenden Befehl, um den MySQL-Dienst neu zu starten:
  1. sudo systemctl restart mysqld# 🎜🎜#
3. So zeigen Sie das langsame MySQL-Abfrageprotokoll an

Sobald Sie das langsame MySQL-Abfrageprotokoll aktiviert haben, zeichnet das langsame Abfrageprotokoll automatisch Abfrageinformationen auf und speichert sie im angegebenen langsamen Protokolldatei abfragen. Sie können den folgenden Befehl verwenden, um das langsame Abfrageprotokoll anzuzeigen:

sudo tail -n 100 /var/log/mysql/mysql-slow.log

Verwenden Sie diesen Befehl, um Zeigt die neuesten 100 langsamen Abfrageprotokolleinträge an. Sie können auch die Anzahl der angezeigten Zeilen nach Ihren Wünschen ändern. In der Ausgabe werden die für die Ausführung der langsamen Abfrage benötigte Zeit sowie alle an der Abfrage beteiligten Tabellen und Unterabfragen angezeigt.

Wenn Sie langsame Protokolle nach Datumsfilterung abfragen müssen, können Sie grep und awk verwenden, um die Protokolle unter Linux zu filtern, wie unten gezeigt:

grep "21-Jun- 2022" / var/log/mysql/mysql-slow.log | awk '{print substr($2,0,length($2)-1)" "$3$4" "$5}' | less

#🎜🎜 #Mit diesem Befehl werden die Zeitstempel aller langsamen Abfrageprotokolle am 21. Juni 2022 ausgegeben.

4. So analysieren und optimieren Sie langsame MySQL-Abfrageprotokolle

Sobald Sie genügend langsame MySQL-Abfrageprotokolle gesammelt haben, können Sie diese analysieren und den Bedarf ermitteln. Führen Sie optimierte Abfragen durch. Hier sind einige Best Practices zum Analysieren und Optimieren der Abfrageleistung: -query-digest ist eine Open-Source-Software, die Ihnen bei der Analyse langsamer MySQL-Abfrageprotokolle und der Optimierung für darin auftretende Probleme helfen kann. Hier sind die Schritte zur Installation und Verwendung von pt-query-digest:

Percona Toolkit installieren

Auf CentOS 7 können Sie es mit installieren den folgenden Befehl.

    yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
  1. yum install percona-toolkit
  • Parsen Sie das langsame Abfrageprotokoll

Sie können den folgenden Befehl verwenden, um pt-query-digest zum Parsen des langsamen Abfrageprotokolls zu verwenden.

pt-query-digest /var/log/mysql/mysql-slow.log > slow-query-analysis.out

  • Analyseabfrage langsames Protokoll

pt-query-digest stellt Ihnen einen umfassenden Analysebericht zu langsamen Abfrageprotokollen zur Verfügung. Sie können die Abfragen finden, die am häufigsten auftreten und die längsten Zeitüberschreitungen aufweisen, und die Abfragen identifizieren, die optimiert werden müssen.

  1. Indexfelder verwenden

Das MySQL-Abfrageprotokoll zeichnet alle Abfragen auf, die den Index nicht erfolgreich verwendet haben. Sie können diese Informationen zur Bestimmung verwenden welche Abfragen nicht durchgeführt wurden. Verwenden Sie geeignete Feldindizes, um Abfragen zu beschleunigen. Durch das Hinzufügen von Indizes in MySQL kann die Abfrageleistung erheblich optimiert werden. Es muss jedoch beachtet werden, dass das Hinzufügen zu vieler Indizes zu einer Verringerung der Abfrageleistung führen kann, da dadurch der Overhead von Abfrageanforderungen und Aktualisierungsvorgängen zunehmen kann.

  1. Abfrageanweisungen optimieren

Das Abfrage-Verlangsamungsprotokoll 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.

  1. Caching-Mechanismus verwenden

Der Caching-Mechanismus kann die Abfragegeschwindigkeit erheblich verbessern. Wenn die Abfrageergebnisse bereits im Cache vorhanden sind, können die Ergebnisse direkt aus dem Cache zurückgegeben werden, wodurch der Mehraufwand für die Ausführung der Abfrage vermieden wird. Caching-Mechanismen können mithilfe von Cache-Anbietern wie Redis und Memcached implementiert werden.

  1. MySQL-Serverparameter anpassen

Im MySQL-Server können Sie die Leistung der gesamten Datenbank optimieren, indem Sie verschiedene Parameter anpassen. 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.

Zusammenfassung

MySQL Query Slow Log ist ein sehr nützliches Tool, das Ihnen hilft, Probleme mit der langsamen Abfrageleistung zu identifizieren und zu beheben. Dieses Tool lässt sich einfach starten und anpassen. Die protokollierten Informationen können Ihnen dabei helfen, die Abfrageleistung zu analysieren und zu ermitteln, welche Abfragen optimiert werden müssen. Das Befolgen von Best Practices und die Durchführung geeigneter Optimierungen können die Gesamtleistung Ihres MySQL-Servers verbessern und Ihnen helfen, große Datenbanken besser zu verwalten und zu warten.

Das obige ist der detaillierte Inhalt vonMySQL-Abfrage langsames Protokoll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage