So aktivieren Sie das langsame Abfrageprotokoll in MySQL

So aktivieren Sie das langsame Abfrageprotokoll in MySQL

1.1 Einleitung

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.2 Melden Sie sich bei der Datenbank an, um sie anzuzeigen

[root@localhost-Bibliothek]# mysql –uroot

Da kein Passwort festgelegt ist, geben Sie das Passwort, falls vorhanden, in mysql –uroot –p ein.

1.2.1 Rufen Sie MySQL auf, um zu prüfen, ob langsame Abfragen aktiviert sind

mysql> Variablen wie „slow_query%“ anzeigen;

+---------------------+------------------------------------------+

| Variablenname | Wert |

+---------------------+------------------------------------------+

| slow_query_log | AUS |

| slow_query_log_datei | /application/mysql/data/localhost-slow.log |

+---------------------+------------------------------------------+

2 Zeilen im Satz (0,00 Sek.)

Parameterbeschreibung:

  1. slow_query_log Status „Langsame Abfrage aktivieren“ OFF Nicht aktiviert ON Aktiviert
  2. slow_query_log_file Der Speicherort, an dem das langsame Abfrageprotokoll gespeichert wird (dieses Verzeichnis erfordert Schreibberechtigungen für das laufende MySQL-Konto und ist im Allgemeinen auf das MySQL-Datenspeicherverzeichnis eingestellt)

1.2.2 Überprüfen Sie das Timeout für langsame Abfragen

mysql> Variablen wie „long%“ anzeigen;

+-----------------+------------+

| Variablenname | Wert |

+-----------------+------------+

| lange Abfragezeit | 10.000000 |

+-----------------+------------+

1 Zeile im Satz (0,00 Sek.)

long_query_time Die Anzahl der Sekunden, die eine Abfrage überschreitet, bevor sie aufgezeichnet wird. Der Standardwert beträgt 10 Sekunden und wird auf 1 Sekunde geändert.

1.3 Änderungsmethode 1: (nicht empfohlen)

Methode 1: Vorteile: Aktivieren Sie langsame Abfragen vorübergehend, ohne die Datenbank neu zu starten. Nachteile: MySQL startet langsame Abfragen neu und schlägt fehl

Empfehlung: Aus geschäftlichen Gründen empfiehlt sich die Verwendung der zweiten Methode. Die erste Methode kann vorübergehend verwendet werden.

Standardmäßig ist der Wert von slow_query_log OFF, was bedeutet, dass das langsame Abfrageprotokoll deaktiviert ist. Es kann aktiviert werden, indem der Wert von slow_query_log wie unten gezeigt festgelegt wird: : Ob das langsame Abfrageprotokoll aktiviert werden soll, 1 bedeutet ein, 0 bedeutet aus.

1.3.1 Überprüfen Sie, ob die langsame Abfrage aktiviert ist

mysql> Variablen wie „%slow_query_log%“ anzeigen;

+---------------------+------------------------------------------+

| Variablenname | Wert |

+---------------------+------------------------------------------+

| slow_query_log | AUS |

| slow_query_log_datei | /application/mysql/data/localhost-slow.log |

+---------------------+------------------------------------------+

2 Zeilen im Satz (0,01 Sek.)

Änderung der Eingabeanweisung (nach Neustart ungültig, es wird empfohlen, sie in /etc/my.cnf zu ändern, damit sie dauerhaft wirksam wird)

mysql> globales slow_query_log=1 festlegen;

Abfrage OK, 0 Zeilen betroffen (0,11 Sek.)

1.3.2 Erneut prüfen

mysql> Variablen wie „%slow_query_log%“ anzeigen;

+---------------------+------------------------------------------+

| Variablenname | Wert |

+---------------------+------------------------------------------+

| slow_query_log | EIN |

| slow_query_log_datei | /application/mysql/data/localhost-slow.log |

+---------------------+------------------------------------------+

2 Zeilen im Satz (0,00 Sek.)

1.4 Änderungsmethode 2: (empfohlen)

Ändern Sie die langsame MySql-Abfrage. Viele Leute kennen den Pfad von my.cnf nicht. Sie können find verwenden, um ihn zu finden.

Hinweis: Mein MySQL ist im Pfad /etc/my.cnf kompiliert (normalerweise hier)

[root@localhost log]# finden / -type f -name "my.cnf"

/anwendung/mysql-5.5.51/mysql-test/suite/rpl/my.cnf

/anwendung/mysql-5.5.51/mysql-test/suite/federated/my.cnf

/anwendung/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/rpl/my.cnf

/anwendung/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/federated/my.cnf

/etc/my.cnf ### (normalerweise hier)

1.4.1.1 Änderungen

[root@localhost-Protokoll]# vim /etc/my.cnf

Suchen Sie [mysqld] und fügen Sie hinzu

slow_query_log = 1

slow_query_log_file=/Anwendung/mysql/Daten/localhost-slow.log

lange_Abfragezeit = 1

Parameterbeschreibung:

  1. slow_query_log Langsame Abfrage aktivieren Status 1 ist aktiviert
  2. slow_query_log_file Der Speicherort, an dem das Slow-Query-Log gespeichert wird
  3. long_query_time Die Anzahl der Sekunden, die eine Abfrage überschreitet, bevor sie aufgezeichnet wird. Der Standardwert beträgt 10 Sekunden und wird auf 1 Sekunde geändert.

Nach der Änderung MySQL neu starten

1.5 Ansehen und testen

1.5.1.1 Einfügen einer langsamen Testabfrage

mysql> wähle sleep(2);

+----------+

| schlafen(2) |

+----------+

| 0 |

+----------+

1 Zeile im Satz (2,00 Sek.)

1.5.1.2 Anzeigen von Protokollen langsamer Abfragen

[root@localhost-Daten]# cat /application/mysql/data/localhost-slow.log

/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). gestartet mit:

TCP-Port: 3306 Unix-Socket: /tmp/mysql.sock

Zeit-ID-Befehlsargument

/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). gestartet mit:

TCP-Port: 3306 Unix-Socket: /tmp/mysql.sock

Zeit-ID-Befehlsargument

/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). gestartet mit:

TCP-Port: 3306 Unix-Socket: /tmp/mysql.sock

Zeit-ID-Befehlsargument

# Zeit: 170605 6:37:00

# Benutzer@Host: root[root] @ localhost []

# Abfragezeit: 2.000835 Sperrzeit: 0.000000 Gesendete Zeilen: 1 Untersuchte Zeilen: 0

SET-Zeitstempel=1496615820;

wähle sleep(2);

1.5.1.3 Überprüfen der Anzahl langsamer Abfragen durch MySQL-Befehle

mysql> globalen Status wie „%Slow_queries%“ anzeigen;

+---------------+-------+

| Variablenname | Wert |

+---------------+-------+

| Langsame Abfragen | 1 |

+---------------+-------+

1 Zeile im Satz (0,00 Sek.)

1.6 Protokollanalysetool mysqldumpslow

Wenn Sie in einer Produktionsumgebung Protokolle manuell analysieren und SQL finden und analysieren möchten, ist dies offensichtlich eine manuelle Aufgabe. MySQL bietet ein Protokollanalysetool namens mysqldumpslow

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der MySql-Analyse langsamer Abfragen und Öffnen des Protokolls langsamer Abfragen
  • Tipps zum Aktivieren des langsamen Abfrageprotokolls in MYSQL5.7.9
  • MySQL-Suche und Optimierungstest für langsame Abfragen
  • Tutorial zur Konfiguration und Verwendung des MySQL-Protokolls für langsame Abfragen
  • Grundlegendes Tutorial zur Analyse des MySQL-Protokolls für langsame Abfragen
  • Eine langsame MySQL-Abfrage verursachte einen Fehler
  • Eine langsame SQL-Anweisung löste eine Transformation aus

<<:  Hinweise zum Proc-Dateisystem des Linux-Kernel-Gerätetreibers

>>:  Detaillierte Erklärung zum schnellen Betrieb einer MySQL-Datenbank in einer Node.js-Umgebung

Artikel empfehlen

jQuery implementiert die Funktion zum Ziehen von Bildern mit der Maus

In diesem Beispiel wird jQuery verwendet, um eine...

Detaillierte Erläuterung des MySQL InnoDB-Sekundärindex-Sortierbeispiels

Sortierproblem Ich habe kürzlich auf Geek Time „4...

Detaillierte Erklärung des Unterschieds zwischen Vue-Lebenszyklus

Lebenszyklusklassifizierung Jede Komponente von V...

JavaScript-Grundlagen dieser Verweisung

Inhaltsverzeichnis Das Verfahren Im Objekt Verste...

SQL-Aggregation, Gruppierung und Sortierung

Inhaltsverzeichnis 1. Aggregierte Abfrage 1. COUN...

So zeichnen Sie spezielle Grafiken in CSS

1. Dreieck Rahmeneinstellungen Code: Breite: 300p...

Verstehen Sie das elastische CSS3 FlexBox-Layout in 10 Minuten

Grundlegende Einführung Merkmale Flexbox ist ein ...

Zusammenfassung der unbekannten Verwendung von "!" in Linux

Vorwort Tatsächlich gibt es für das bescheidene „...

SQL-Anweisungen in MySQL verwenden keine Indizes

MySQL-Abfrage ohne Verwendung der Indexaggregatio...

Schritte zum Installieren einer RocketMQ-Instanz unter Linux

1. JDK installieren 1.1 Überprüfen Sie, ob die ak...

So ändern Sie in Nginx die über http aufgerufene Website in https

Inhaltsverzeichnis 1. Hintergrund 2. Voraussetzun...

JavaScript zum Implementieren einer einfachen Uhr

In diesem Artikelbeispiel wird der spezifische Co...