In MySQL bezieht sich die langsame Abfrage auf die SQL-Anweisung, die langsam ausgeführt und im Protokoll aufgezeichnet wird. Sie bezieht sich auf die Ausführung der SQL-Anweisungsabfrage, die den durch den Parameter „long_query_time“ festgelegten Zeitschwellenwert überschreitet. Langsame Abfragen werden im Protokoll für langsame Abfragen aufgezeichnet. Mithilfe des Protokolls für langsame Abfragen können Sie herausfinden, welche Abfrageanweisungen eine geringe Ausführungseffizienz aufweisen.
Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.
Eine langsame Abfrage zeichnet SQL-Anweisungen auf, die langsam im Protokoll ausgeführt werden. Dies bedeutet, dass MySQL alle SQL-Anweisungsabfragen aufzeichnet, die den durch den Parameter long_query_time festgelegten Zeitschwellenwert überschreiten.
Langsame Abfragen werden im Protokoll für langsame Abfragen aufgezeichnet. Mithilfe des Protokolls für langsame Abfragen können Sie herausfinden, welche Abfrageanweisungen zur Optimierung eine geringe Ausführungseffizienz aufweisen. Dieses Protokoll kann eine große Hilfe bei der Optimierung von SQL-Anweisungen sein.
Standardmäßig ist das Protokoll für langsame Abfragen deaktiviert. Um die Protokollfunktion für langsame Abfragen verwenden zu können, müssen Sie zunächst die Protokollfunktion für langsame Abfragen aktivieren.
show VARIABLES like '%slow_query_log%' show VARIABLES like '%slow_query_log_file%' show VARIABLES like '%long_query_time%' show VARIABLES like '%log_queries_not_using_indexes%' show VARIABLES like 'log_output'
set global long_query_time=0; ---默认10秒,这里为了演示方便设置为0 set GLOBAL slow_query_log = 1; --开启慢查询日志 set global log_output='FILE,TABLE' --项目开发中日志只能记录在日志文件中,不能记表中
Wir können also diese Methode verwenden:
Suchen Sie my.cnf und fügen Sie den folgenden Inhalt hinzu
# 添加慢查询日志 log_output=file slow_query_log=on slow_query_log_file = /tmp/mysql-slow.log log_queries_not_using_indexes=on long_query_time = 1
3. Überprüfen Sie das langsame Abfrageprotokoll
Wenn Sie sehen möchten, welche Abfrageanweisungen eine geringe Ausführungseffizienz haben , können Sie Informationen aus dem langsamen Abfrageprotokoll erhalten. Wie Fehlerprotokolle und Abfrageprotokolle werden auch Protokolle langsamer Abfragen in Form von Textdateien gespeichert und können mit gewöhnlichen Textdatei-Anzeigetools angezeigt werden.
Beispiel 1
Aktivieren Sie die MySQL-Funktion für langsame Abfragen und stellen Sie die Zeit ein. Der Befehls- und Ausführungsprozess ist wie folgt:
mysql> SET GLOBAL slow_query_log=ON; Query OK, 0 rows affected (0.05 sec) mysql> SET GLOBAL long_query_time=0.001; Query OK, 0 rows affected (0.00 sec)
Um die Daten in der Tabelle tb_student abzufragen, lauten die SQL-Anweisung und der Ausführungsprozess wie folgt:
mysql> USE test; Database changed mysql> SELECT * FROM tb_student; +----+--------+ | id | name | +----+--------+ | 1 | Java | | 2 | MySQL | | 3 | Python | +----+--------+ 3 rows in set (0.08 sec)
Entsprechend lautet ein Teil des Inhalts des langsamen Abfrageprotokolls wie folgt:
# Time: 2020-06-01T01:59:18.368780Z # User@Host: root[root] @ localhost [::1] Id: 3 # Query_time: 0.006281 Lock_time: 0.000755 Rows_sent: 2 Rows_examined: 1034 use test; SET timestamp=1590976758; SHOW VARIABLES LIKE 'slow_query%';
4. Löschen Sie das langsame Abfrageprotokoll
So löschen Sie das Protokoll für langsame Abfragen und das allgemeine Protokoll. Die Löschmethode ist dieselbe. Kann mit dem Befehl mysqladmin gelöscht werden. Es kann auch manuell gelöscht werden. Die Syntax des mysqladmin-Befehls lautet wie folgt:
mysqladmin -uroot -p flush-logs
Nach der Ausführung des Befehls werden Sie in der Befehlszeile zur Eingabe des Passworts aufgefordert. Nach Eingabe des korrekten Passwortes wird der Löschvorgang durchgeführt. Das neue langsame Abfrageprotokoll überschreibt direkt das alte Abfrageprotokoll und es ist nicht erforderlich, es manuell zu löschen.
Der Datenbankadministrator kann das langsame Abfrageprotokoll auch manuell löschen. Nach dem Löschen muss der MySQL-Dienst neu gestartet werden.
Hinweis: Sowohl das allgemeine Abfrageprotokoll als auch das langsame Abfrageprotokoll verwenden diesen Befehl. Beachten Sie bei der Verwendung unbedingt, dass nach der Ausführung dieses Befehls das allgemeine Abfrageprotokoll und das langsame Abfrageprotokoll nur in neuen Protokolldateien vorhanden sind . Wenn Sie alte Protokolldateien für langsame Abfragen sichern müssen, müssen Sie zuerst die alten Protokolle umbenennen und dann den MySQL-Dienst neu starten oder den Befehl mysqladmin ausführen.【Verwandte Empfehlungen:
MySQL-Video-Tutorial】
Das obige ist der detaillierte Inhalt vonWas ist eine langsame MySQL-Abfrage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!