Heim >Datenbank >MySQL-Tutorial >Der Unterschied zwischen normalen und langsamen Abfrageprotokollen in MySQL
<br/>
In einer früheren Freigabe wurde erwähnt, dass der Protokolltyp von MySQL unterteilt werden kann in Drei Typen: Fehlerprotokoll (error_log), Abfrageprotokoll (query_log) und Binärprotokoll (binary_log), siehe error_log im MySQL-Protokoll. In diesem Artikel werden hauptsächlich die Prinzipien und die Verwendung von general_log und slow_query_log vorgestellt.
Das allgemeine Abfrageprotokoll (general_log) wird hauptsächlich zum Abfragen relevanter Informationen verwendet, wenn jeder Client eine Verbindung zur Datenbank herstellt und SQL-Anweisungen in der Datenbankkonfiguration ausführt Methode Für:
1. Überprüfen Sie, ob das allgemeine Abfrageprotokoll aktiviert ist und dessen Speicherpfad:
mysql> show variables like "general_log%"; +------------------+------------------------------+| Variable_name | Value | +------------------+------------------------------+| general_log | OFF | | general_log_file | /var/lib/mysql/localhost.log | +------------------+------------------------------+ 2 rows in set (0.00 sec)
In der Bildschirmausgabe general_log
und general_log_file
Notieren Sie die aktuelle allgemeine Abfrage. Den Schalterstatus und den Pfad des Protokolls.
2. Aktivieren Sie das allgemeine Abfrageprotokoll
set global general_log = ON
Ob die Abfrage erfolgreich ist:
mysql> show variables like "general_log%"; +------------------+------------------------------+| Variable_name | Value | +------------------+------------------------------+| general_log | ON | | general_log_file | /var/lib/mysql/localhost.log | +------------------+------------------------------+ 2 rows in set (0.00 sec)
Erfolg.
Verlassen Sie den Vorgang und prüfen Sie, ob er korrekt generiert und aufgezeichnet wird:
[root@localhost ~]# cat /var/lib/mysql/localhost.log /usr/sbin/mysqld, Version: 5.7.19 (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock Time Id Command Argument 2017-08-14T09:33:11.364650Z 5 Quit 2017-08-14T09:33:20.671113Z 6 Connect root@localhost on using Socket 2017-08-14T09:33:20.671323Z 6 Query select @@version_comment limit 1 2017-08-14T09:33:22.964610Z 6 Query show variables like '%log%' 2017-08-14T09:33:24.574224Z 6 Quit
Erfolgreich, und wir können sehen, dass das Protokoll nicht nur den SQL-Befehl aufzeichnet, sondern auch die Ausführungszeit und die ID enthält , Befehlstyp und andere zugehörige Daten
Das Protokoll langsamer Abfragen zeichnet Anweisungen auf, deren SQL-Anweisungszeit die voreingestellte long_query_time überschreitet, wenn die Datenmenge beträgt Mit „large“ können Sie sehen, welche Anweisungen im langsamen Abfrageprotokoll optimiert werden müssen.
1. Konfiguration des langsamen Abfrageprotokolls
Die Konfiguration des langsamen Abfrageprotokolls finden Sie in der Datenbankkonfigurationsdatei my.cnf
:
[root@localhost ~]# cat /etc/my.cnf | grep -E 'long|slow|not_using_indexes'long_query_time = 1#log-slow-queries = /var/log/mysql/slow.loglog_queries_not_using_indexes
Sie können sehen:
long_query_time = 1
bedeutet, dass, wenn die Ausführungszeit der SQL-Anweisung 1s überschreitet, dies die Einstellung des langsamen Abfrageprotokollpfads ist; 🎜>
Das bedeutet, dass Anweisungen, die keine Indizes verwenden, das Aufzeichnungsziel reduzieren könnenlog-slow-queries = /var/log/mysql/slow.log
Die tatsächliche Konfiguration ist dieselbe wie beim allgemeinen Abfrageprotokoll. Geben Sie den Befehl in die interaktive MySQL-Schnittstelle ein, um die langsame Abfrage zu aktivieren log: log_queries_not_using_indexes
set slow_query_log = ON
Erfolg.
[root@localhost ~]# cat /var/lib/mysql/localhost-slow.log /usr/sbin/mysqld, Version: 5.7.19 (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock Time Id Command ArgumentBeachten Sie jedoch, dass slow_query_log möglicherweise Anweisungen zu Benutzerberechtigungen und Passwörtern aufzeichnet. Achten Sie daher bitte auf die sichere Speicherung von Protokollen, wenn Sie Protokolldateien für langsame Abfragen verwenden.
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen normalen und langsamen Abfrageprotokollen in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!