So aktivieren Sie die Protokollfunktion für langsame Abfragen in MySQL

So aktivieren Sie die Protokollfunktion für langsame Abfragen in MySQL

Das MySQL-Protokoll für langsame Abfragen ist sehr nützlich, um problematische Abfragen zu verfolgen. Es kann analysieren, ob es SQL-Anweisungen gibt, die im aktuellen Programm viele Ressourcen verbrauchen. Dies ist ein nützliches Protokoll. Es hat nur geringe Auswirkungen auf die Leistung (vorausgesetzt, alle Abfragen sind schnell) und hebt die Abfragen hervor, die die meiste Aufmerksamkeit erfordern (fehlende Indizes oder Indizes, die nicht optimal angewendet werden). Wie schalten Sie also die Protokollierung langsamer MySQL-Abfragen ein?

Durch Aktivieren des Slow Query Log kann MySQL Abfrageanweisungen aufzeichnen, die die angegebene Zeit überschreiten. Durch das Auffinden und Analysieren von Leistungsengpässen lässt sich die Leistung des Datenbanksystems besser optimieren.

(1) Konfigurationsstart

Linux:

Fügen Sie der MySQL-Konfigurationsdatei my.cnf die folgende Anweisung hinzu:

log-slow-queries=/var/lib/mysql/slowquery.log #Geben Sie den Speicherort der Protokolldatei an, der leer sein kann. Das System gibt eine Standarddatei host_name-slow.log an
long_query_time=5 #Zeichnet die überschrittene Zeit auf, der Standardwert ist 10 s, hier eingestellt auf Abfrageanweisungen mit einer Abfragezeit von mehr als 5 s log-queries-not-using-indexes = on #Listen Sie Abfrageanweisungen auf, die keine Indizes verwenden #log-queries-not-using-indexes Gibt an, ob alle Abfragen aufgezeichnet werden sollen, die keine Indizes verwenden. Sie können je nach Situation entscheiden, ob Sie es einschalten möchten #log-long-format Gibt an, ob alle Abfragedatensätze aufgezeichnet werden sollen, einschließlich Abfragen, die keine Indizes verwenden

Windows:

Fügen Sie die folgende Anweisung in [mysqld] von my.ini hinzu (die Anweisungsoptionen und ihre Bedeutungen sind dieselben wie oben):

log-slow-queries = E:\mysql\log\mysqlslowquery.log
lange_Abfragezeit = 5

(2) Anzeigemethode

Linux:

Verwenden Sie den Befehl mysqldumpslow zum Anzeigen

Allgemeine Befehle

  • -s ORDER, wonach sortiert werden soll (t, at, l, al, r, ar usw.), „at“ ist die Standardeinstellung
  • -t NUM zeigt nur die Top-n-Abfragen an
  • -g PATTERN grep: nur Anweisungen berücksichtigen, die diesen String enthalten

z.B:

-s ist die Reihenfolge. Die Beschreibung ist nicht detailliert genug. Ich habe sie verwendet und den Code gelesen. Es gibt hauptsächlich c, t, l, r und ac, at, al, ar, die jeweils nach Abfragezeiten, Zeit, Sperrzeit und Anzahl der zurückgegebenen Datensätze sortiert sind. Die Reihenfolge wird umgekehrt, wenn a davor hinzugefügt wird.

-t bedeutet oberste n, also wie viele Datensätze zurückgegeben werden.

-g, Sie können danach ein reguläres passendes Muster schreiben, die Groß-/Kleinschreibung wird dabei nicht beachtet.

Die spezifischen Befehle lauten wie folgt:

mysqldumpslow -sc -t 20 host-slow.log

mysqldumpslow -sr -t 20 host-slow.log

Der obige Befehl kann die 20 SQL-Anweisungen mit den meisten Zugriffszeiten und die 20 SQL-Anweisungen mit den meisten zurückgegebenen Datensätzen anzeigen.

mysqldumpslow -t 10 -st -g “left join” host-slow.log gibt die ersten 10 SQL-Anweisungen zurück, die Left Joins nach Zeit enthalten.

Windows:

Wenn Sie MySQL Slow Query zum ersten Mal aktivieren, wird in dem von Ihnen angegebenen Verzeichnis eine Protokolldatei erstellt. In diesem Artikel ist es mysqlslowquery.log. Der Inhalt dieser Datei ist wie folgt (wenn MySQL Slow Query zum ersten Mal aktiviert wird):

E:\web\mysql\bin\mysqld, Version: 5.4.3-beta-community-log (MySQL Community Server (GPL)). gestartet mit:
TCP-Port: 3306, Named Pipe: (null)
Zeit-ID-Befehlsargument

Mit dem folgenden Befehl können Sie die Anzahl der Datensätze langsamer Abfragen anzeigen:

mysql> globalen Status wie „%slow%“ anzeigen;
+---------------------+--------+
| Variablenname | Wert |
+---------------------+--------+
| Langsame Startthreads | 0 |
| Langsame Abfragen | 0 |
+---------------------+--------+

prüfen

1. Führen Sie eine langsame SQL-Abfrage aus

mysql> wähle sleep(2);

2. Überprüfen Sie, ob langsame Abfrageprotokolle generiert werden

ls /usr/local/mysql/data/slow.log

Wenn das Protokoll vorhanden ist, wurde die MySQL-Einstellung für langsame Abfragen erfolgreich aktiviert!

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der MySql-Analyse langsamer Abfragen und Öffnen des Protokolls langsamer Abfragen
  • So aktivieren Sie das MySQL-Protokoll für langsame Abfragen log-slow-queries
  • Tipps zum Aktivieren des langsamen Abfrageprotokolls in MYSQL5.7.9
  • mysql langsame Abfrage aktivieren So aktivieren Sie die Protokollierung langsamer MySQL-Abfragen
  • So aktivieren Sie das langsame Abfrageprotokoll in MySQL
  • Detaillierte Erklärung zum Aktivieren des langsamen Abfrageprotokolls in der MySQL-Datenbank
  • Die Rolle und Öffnung des MySQL-Protokolls für langsame Abfragen
  • Aktivieren und Konfigurieren des MySQL-Protokolls für langsame Abfragen
  • MySQL-Optimierungslösung: Aktivieren Sie das Protokoll für langsame Abfragen

<<:  Holen Sie sich die IP und den Hostnamen aller Hosts auf Zabbix

>>:  js, um die vollständigen Schritte der Konvertierung von Chinesisch nach Pinyin durchzuführen

Artikel empfehlen

Was sind die Unterschiede zwischen SQL und MySQL

Was ist SQL? SQL ist eine Sprache zum Betrieb von...

MySql8 WITH RECURSIVE rekursive Abfrage Eltern-Kind-Sammlungsmethode

Hintergrund Wenn Sie eine Funktion entwickeln, di...

So rufen Sie das Kennwort für MySQL 8.0.22 auf dem Mac ab

Neueste Version von MySQL 8.0.22 zur Kennwortwied...

Eine gründliche Analyse der HTML-Sonderzeichen

Eine gründliche Analyse von HTML (14) Sonderzeich...

Detailliertes Installationstutorial für Zabbix 4.04 (basierend auf CentOS 7.6)

1. Vorbereitung vor der Installation: 1.1 JDK ins...

So lösen Sie das jQuery-Konfliktproblem

In der Frontend-Entwicklung ist $ eine Funktion i...

Allgemeine Struktur-Tags in XHTML

Struktur Text, Kopf, HTML, Titel Text abbr, Akron...

Vue implementiert die Tabellenpaging-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

jQuery+Ajax zum Erreichen eines einfachen Paging-Effekts

In diesem Artikel wird der spezifische Code von j...

Tiefgreifendes Verständnis von globalen Sperren und Tabellensperren in MySQL

Vorwort Je nach Umfang der Sperrung können Sperre...

Ein Beispiel für die Verwendung von CSS-Methoden zur Erzielung von Modularität

1. Was sind CSS-Methoden? CSS methodologies könne...