Tutorial zur grundlegenden Verwendung des MySQL Slow Query Log

Tutorial zur grundlegenden Verwendung des MySQL Slow Query Log

Parameter im Zusammenhang mit dem langsamen Abfrageprotokoll

Erläuterung der mit langsamen MySQL-Abfragen verbundenen Parameter: slow_query_log: Gibt an, ob das Protokoll für langsame Abfragen aktiviert werden soll. 1 bedeutet aktivieren, 0 bedeutet deaktivieren.

  • slow_query_log: Gibt an, ob das Protokoll für langsame Abfragen aktiviert werden soll. 1 bedeutet aktiviert, 0 bedeutet deaktiviert.
  • log-slow-queries: Der Speicherpfad des Protokolls für langsame Abfragen der alten Version (unter 5.6) der MySQL-Datenbank. Sie können diesen Parameter ungesetzt lassen, das System greift dann standardmäßig auf die Datei host_name-slow.log zu
  • slow-query-log-file: Der Speicherpfad des Slow-Query-Protokolls der neuen Version (5.6 und höher) der MySQL-Datenbank. Sie können diesen Parameter ungesetzt lassen, das System greift dann standardmäßig auf die Datei host_name-slow.log zu
  • long_query_time: Schwellenwert für langsame Abfragen. Wenn die Abfragezeit den festgelegten Schwellenwert überschreitet, wird ein Protokoll aufgezeichnet.
  • log_queries_not_using_indexes: Abfragen, die keine Indizes verwenden, werden auch im Protokoll für langsame Abfragen protokolliert (optional).
  • log_output: Methode zur Protokollspeicherung. log_output='FILE' bedeutet, dass Protokolle in Dateien gespeichert werden. Der Standardwert ist 'FILE'. log_output='TABLE' bedeutet, dass das Protokoll in der Datenbank gespeichert wird, sodass die Protokollinformationen in die Tabelle mysql.slow_log geschrieben werden. MySQL-Datenbanken unterstützen zwei Protokollspeichermethoden gleichzeitig. Trennen Sie sie bei der Konfiguration einfach durch Kommas, z. B.: log_output='FILE,TABLE'. Das Protokollieren in die dedizierte Protokolltabelle des Systems verbraucht mehr Systemressourcen als das Protokollieren in Dateien. Wenn Sie daher langsame Abfrageprotokolle aktivieren und eine höhere Systemleistung erzielen müssen, wird empfohlen, zuerst in Dateien zu protokollieren.

1. Einstellmethode

Verwenden Sie das langsame Abfrageprotokoll zum Erfassen

Vor der Aktivierung sind einige Einstellungen erforderlich

Methode 1: Globale Variableneinstellung

Festlegen des Protokolldateispeicherorts für das langsame Abfrageprotokoll

Setzen Sie die globale slow_query_log_file = "D:/slow_log/slow_log.log";

Festlegen, ob SQL-Anweisungen protokolliert werden sollen, die keine Indizes verwenden

Setzen Sie global log_queries_not_using_indexes = ein;

Aufzeichnen, solange die SQL-Ausführungszeit n Sekunden überschreitet

setze globale long_query_time = 0,001;

Die Einstellung von 0,001 Sekunden dient hier zu Testzwecken. Normalerweise ist der Wert größer.

Aktivieren Sie das MySQL-Protokoll für langsame Abfragen

Setzen Sie global slow_query_log = on;

Methode 2: Konfigurationsdateieinstellungen

Ändern Sie die Konfigurationsdatei my.cnf und fügen Sie unter [mysqld] Folgendes hinzu:

[mysqld]
slow_query_log = EIN
log_queries_not_using_indexes = EIN;
slow_query_log_file = /usr/local/mysql/data/slow.log
lange_Abfragezeit = 1

Anzeigen der Parameter nach der Einstellung

Variablen wie „slow_query%“ anzeigen;
Variablen wie „long_query__time“ anzeigen;

2. Inhalt der Protokolldatensätze für langsame Abfragen

Zeit-ID-Befehlsargument
# Zeit: 2019-01-08T04:12:09.269315Z 
# Benutzer@Host: h5_test[h5_test] @ localhost [::1] ID: 12 
# Abfragezeit: 0,000831 Sperrzeit: 0,000198 Gesendete Zeilen: 1 Untersuchte Zeilen: 3 
verwenden Sie mc_productdb;
SET-Zeitstempel=1546920729;
Wählen Sie t.customer_id, t.title, t.content aus. 
AUS (
Wählen Sie Kunden-ID aus Produktkommentar, wobei Produkt-ID = 199726 und Auditstatus = 1 ist. LIMIT 0,15
)a JOIN Produktkommentar t 
EIN a.customer_id = t.comment_id;
  • Zeit: Datum und Uhrzeit der Ausführung der Abfrage
  • Benutzer@Host: Die Benutzer- und Client-IP-Adresse, die die Abfrage ausgeführt hat
  • Id: ist die Thread-ID, die die Abfrage ausführt
  • Query_time: Die von der SQL-Ausführung benötigte Zeit
  • Lock_time: Die Zeit, die zum Ausführen einer Abfrage zum Sperren des Datensatzes benötigt wird
  • Rows_sent: Die Anzahl der von der Abfrage zurückgegebenen Zeilen
  • Rows_examined: Die Anzahl der gelesenen Zeilen, um die abgefragten Daten zurückzugeben

3. So analysieren Sie langsame Abfrageprotokolle

Verwendung: mysqldumpslow [ OPTS... ] [ LOGS... ]

Analysieren und fassen Sie das MySQL-Protokoll für langsame Abfragen zusammen. Optionen sind

 --verbose ausführlich
 --debug debug
 --help schreibt diesen Text in die Standardausgabe

 -v ausführlich
 -d debug
 -s ORDER, wonach sortiert werden soll (al, at, ar, c, l, r, t), 'at' ist Standard
  al: durchschnittliche Sperrzeit
  ar: Durchschnittlich gesendete Zeilen
  at: durchschnittliche Abfragezeit
   c: Anzahl
   l: Sperrzeit
   r: gesendete Zeilen
   t: Abfragezeit
 -r Sortierreihenfolge umkehren (größtes zuletzt statt zuerst)
 -t NUM zeigt nur die Top-n-Abfragen an
 -a abstrahiere nicht alle Zahlen zu N und Strings zu 'S'
 -n NUM abstrakte Zahlen mit mindestens n Ziffern innerhalb der Namen
 -g PATTERN grep: nur Anweisungen berücksichtigen, die diesen String enthalten
 -h HOSTNAME Hostname des Datenbankservers für *-slow.log Dateiname (kann ein Platzhalter sein),
  Der Standardwert ist '*', d. h. alle
 -i NAME Name der Serverinstanz (bei Verwendung des Startskripts mysql.server)
 -l Sperrzeit nicht von Gesamtzeit abziehen

Da das Protokoll langsamer Abfragen eine große Anzahl wiederholter SQLs enthält, können Sie der Einfachheit halber das von MySQL bereitgestellte Befehlszeilentool mysqldumpslow verwenden, um das Protokoll zu analysieren.

$ mysqldumpslow.pl slow_log.log

Lesen des MySQL-Protokolls für langsame Abfragen aus slow_log.log
Anzahl: 1 Zeit=0,00 s (0 s) Sperre=0,00 s (0 s) Zeilen=0,0 (0), 0 Benutzer@0 Hosts
 C:\Programme\MySQL\MySQL Server NN\bin\mysqld.exe, Version: NNN-log (MySQL Community Server (GPL)). gestartet mit:
 TCP-Port: N, Named Pipe: MySQL
 # Zeit: NN-08T04:N:N.269315Z
 # Benutzer@Host: h5_test[h5_test] @ localhost [::N] Id: N
 # Abfragezeit: NN Sperrzeit: NN Gesendete Zeilen: N Untersuchte Zeilen: N
 verwenden Sie mc_productdb;
 SETZE Zeitstempel=N;
 Wählen Sie t.customer_id, t.title, t.content aus.
 AUS (
 Wählen Sie Kunden-ID aus Produktkommentar, wobei Produkt-ID = N und Auditstatus = N ist (LIMIT N,N).
 )a JOIN Produktkommentar t
 EIN a.customer_id = t.comment_id

Die im Slow-Query-Log aufgezeichneten Daten ähneln denen im Slow-Query-Log, außer dass es eine zusätzliche Count-Zeile gibt, die die Anzahl der Ausführungen dieses SQL während des Aufzeichnungszeitraums des Slow-Query-Logs aufzeichnet. Wenn ein SQL mehrmals ausgeführt wird, wird bei der Analyse mit diesem Befehl nur ein SQL-Log angezeigt. Der Wert in Count stellt die Anzahl der Ausführungen dar, und andere Zahlen werden zum Zusammenführen durch N ersetzt.

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. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Beispielerklärung für langsame MySQL-Abfragen und -Protokolle
  • Langsame MySQL-Abfragen und Protokolleinstellungen und -tests
  • Aktivieren und Konfigurieren des MySQL-Protokolls für langsame Abfragen
  • Detaillierte Erklärung, warum die langsame Abfrageprotokollzeit von MySQL 5.7 8 Stunden hinter der Systemzeit liegt
  • So aktivieren Sie die Protokollfunktion für langsame Abfragen in MySQL
  • Analyse des allgemeinen MySQL-Abfrageprotokolls und des langsamen Abfrageprotokolls
  • Tutorial zur Konfiguration und Verwendung des MySQL-Protokolls für langsame Abfragen
  • So aktivieren Sie das langsame Abfrageprotokoll in MySQL
  • Detaillierte Erläuterung der MySql-Analyse langsamer Abfragen und Öffnen des Protokolls langsamer Abfragen
  • Umfassendes Verständnis des MySQL-Protokolls für langsame Abfragen

<<:  Detailliertes Installations- und Konfigurationstutorial für PostgreSQL 11 unter CentOS7

>>:  So kapseln Sie Axios-Anfragen mit Vue

Artikel empfehlen

MySQL-Datenbanktabellendesign mit Baumstruktur

Inhaltsverzeichnis Vorwort 1. Basisdaten 2. Verer...

...

XHTML-Tutorial für die ersten Schritte: XHTML-Webseiten-Bildanwendung

<br />Das sinnvolle Hinzufügen von Bildern k...

HTML+CSS zum Erreichen eines reaktionsfähigen Karten-Hover-Effekts

Inhaltsverzeichnis erreichen: Zusammenfassen: Daz...

Zusammenfassung der MySQL-Injection-Bypass-Filtertechniken

Schauen wir uns zunächst den GIF-Vorgang an: Fall...

HTML+CSS zum Erreichen eines Surround-Reflexionsladeeffekts

In diesem Artikel wird hauptsächlich die Implemen...

Ein genauerer Blick auf die Unterschiede zwischen Link und @import

Es gibt drei Hauptmethoden, CSS auf einer Seite zu...

Mysql-Lösung zur Verbesserung der Effizienz beim Kopieren großer Datentabellen

Vorwort Dieser Artikel stellt hauptsächlich den r...

So optimieren Sie den MySQL-Deduplizierungsvorgang maximal

Inhaltsverzeichnis 1. Clevere Verwendung von Indi...

HTML-, CSS- und JS-Kompatibilitätsbaum (IE, Firefox, Chrome)

Was ist ein Baum im Webdesign? Einfach ausgedrückt...

Zusammenfassung ungewöhnlicher Operatoren und Operatoren in js

Zusammenfassung gängiger Operatoren und Operatore...

Nginx-Stream-Konfigurationsproxy (Nginx TCP/UDP-Lastausgleich)

Auftakt Wir alle wissen, dass nginx ein hervorrag...

Ein Artikel, der Ihnen hilft, mehr über JavaScript-Arrays zu erfahren

Inhaltsverzeichnis 1. Die Rolle des Arrays: 2. De...