In diesem Artikel wird hauptsächlich die Methode zum Aktivieren des langsamen Abfrageprotokolls in MySQL vorgestellt. Der Herausgeber findet sie recht gut, daher werde ich sie jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.
1.1 Einführung
Durch die Aktivierung des langsamen Abfrageprotokolls kann MySQL Abfragen aufzeichnen, die die angegebene Zeit überschreiten. Durch das Auffinden und Analysieren von Leistungsengpässen kann die Datenbank besser optimiert werden . Systemleistung.
1.2 Melden Sie sich bei der Datenbank an, um
[root@localhost lib]# mysql –uroot
Da kein Passwort festgelegt ist, wenn Sie ein Passwort haben , gehen Sie zu mysql –uroot –p, um eine Verbindung herzustellen. Passwort
1.2.1 Geben Sie MySql ein, um zu prüfen, ob die langsame Abfrage aktiviert ist
mysql> show variables like 'slow_query%'; +---------------------+--------------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------------+ | slow_query_log | OFF | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+--------------------------------------------+ 2 rows in set (0.00 sec)
Parameterbeschreibung:
slow_query_log langsamer Abfrage-Aktivierungsstatus AUS nicht aktiviert EIN ist aktiviert
slow_query_log_file Der Speicherort, an dem sich das langsame Abfrageprotokoll befindet gespeichert (für dieses Verzeichnis sind die Schreibberechtigungen des laufenden MySQL-Kontos erforderlich. Im Allgemeinen auf das Datenspeicherverzeichnis von MySQL eingestellt)
1.2.2 Überprüfen Sie das Zeitlimit für langsame Abfragen
mysql> show variables like 'long%'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.00 sec)
long_query_time Abfrage, wie viele Sekunden die Aufzeichnung dauert. Standardmäßig 10 Sekunden geändert in 1 Sekunde
1.3 Änderungsmethode 1: (nicht empfohlen)
Methode 1: Vorteile vorübergehend aktivieren. Langsame Abfrage, kein Neustart der Datenbank erforderlich. Nachteile: Die langsame MySQL-Abfrage schlägt beim Neustart fehl.
Empfehlung: Entsprechend den Geschäftsanforderungen ist dies der Fall Es wird empfohlen, das zweite zu verwenden. Das erste kann vorübergehend verwendet werden.
Der Wert von slow_query_log ist standardmäßig AUS. Dies bedeutet, dass das langsame Abfrageprotokoll deaktiviert ist und durch Festlegen des Werts von slow_query_log aktiviert werden kann, wie gezeigt Unten: 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> show variables like '%slow_query_log%'; +---------------------+--------------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------------+ | slow_query_log | OFF | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+--------------------------------------------+ 2 rows in set (0.01 sec)
Ändern Sie die Eingabeanweisung (sie funktioniert nach dem Neustart nicht mehr). , es wird empfohlen, es in /etc zu ändern. /my.cnf Änderungen werden dauerhaft wirksam)
mysql> set global slow_query_log=1; Query OK, 0 rows affected (0.11 sec)
1.3.2 Überprüfen Sie es erneut
mysql> show variables like '%slow_query_log%'; +---------------------+--------------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------------+ | slow_query_log | ON | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+--------------------------------------------+ 2 rows in set (0.00 sec)
1.4 Änderungsmethode 2: (empfohlen)
MySql langsame Abfrage ändern Viele Leute kennen die my nicht. cnf-Pfad. Sie können find verwenden, um
zu finden. Hinweis: Mein MySQL ist in /etc/my.cnf (normalerweise hier)
[root@localhost log]# find / -type f -name "my.cnf" /application/mysql-5.5.51/mysql-test/suite/rpl/my.cnf /application/mysql-5.5.51/mysql-test/suite/federated/my.cnf /application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/rpl/my.cnf /application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/federated/my.cnf /etc/my.cnf ###(一般都是这里)
kompiliert 1.4.1.1 Änderung
[root@localhost log]# vim /etc/my.cnf
Suchen Sie [mysqld] und fügen Sie
slow_query_log =1 slow_query_log_file=/application/mysql/data/localhost-slow.log long_query_time = 1
1.5 Anzeigen und testen
1.5.1.1 Eine langsame Testabfrage einfügen
mysql> select sleep(2); +----------+ | sleep(2) | +----------+ | 0 | +----------+ 1 row in set (2.00 sec)
1.5.1.2 Sehen Sie sich das langsame Abfrageprotokoll an
[root@localhost data]# cat /application/mysql/data/localhost-slow.log /application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument /application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument /application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument # Time: 170605 6:37:00 # User@Host: root[root] @ localhost [] # Query_time: 2.000835 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 SET timestamp=1496615820; select sleep(2);
1.5.1.3 Überprüfen Sie, wie viele langsame Abfragen es über MySQL-Befehle gibt
mysql> show global status like '%Slow_queries%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Slow_queries | 1 | +---------------+-------+ 1 row in set (0.00 sec)
1.6 Protokollanalysetool mysqldumpslow
Wenn Sie in einer Produktionsumgebung Protokolle manuell analysieren, SQL suchen und analysieren möchten, ist dies der Fall Offensichtlich eine mühsame Aufgabe. MySQL bietet das Protokollanalysetool mysqldumpslowVerwandte Empfehlungen:Konfiguration und Verwendung im Zusammenhang mit MySQL Slow Query Log
Der Unterschied zwischen normalen und langsamen Abfrageprotokollen in MySQL
Einführung in den langsamen MySQL-Abfragevorgang zur MySQL-Optimierung
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie man das langsame Abfrageprotokoll in MySQL aktiviert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!