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

Tutorial zur Installation von PHP auf CentOS über Yum

Lassen Sie mich zunächst vorstellen, wie Sie PHP ...

Detaillierte Erklärung der Primärschlüssel und Transaktionen in MySQL

Inhaltsverzeichnis 1. Kommentare zu MySQL-Primärs...

So begrenzen Sie die Anzahl gleichzeitiger Verbindungsanforderungen in Nginx

Einführung Das Modul, das die Anzahl gleichzeitig...

Ideen und Codes zur Implementierung des Wasserfall-Flow-Layouts im UniApp-Applet

1. Einleitung Gilt es als Aufwärmen alter Themen,...

Lösung für die leere Seite nach einem vue.js-gepackten Projekt

Ich glaube, dass viele Partner, die gerade erst m...

So zeigen Sie das MySQL-Binlog (Binärprotokoll) an

Wenn Sie beispielsweise eine neue Tabelle erstell...

Definition und Funktion des zoom:1-Attributs in CSS

Heute wurde ich gefragt, wozu das Zoom-Attribut i...

So fügen Sie Konfigurationsoptionen zum Discuz!-Forum hinzu

Discuz! Forum verfügt über zahlreiche Konfiguratio...