Heim  >  Artikel  >  Datenbank  >  Was ist eine langsame MySQL-Abfrageanweisung?

Was ist eine langsame MySQL-Abfrageanweisung?

WBOY
WBOYOriginal
2022-02-24 11:11:514698Durchsuche

In MySQL beziehen sich langsame Abfrageanweisungen auf Anweisungen, deren Antwortzeit den Schwellenwert im langsamen Abfrageprotokoll überschreitet. Die spezifische Laufzeit überschreitet den Wert „long_query_time“ der SQL-Anweisung. Sie können festlegen, ob dies der Fall ist Aktivieren Sie die langsame Abfrage. „1“ bedeutet „Ein“, „0“ bedeutet „Aus“.

Was ist eine langsame MySQL-Abfrageanweisung?

Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.

Was ist eine langsame MySQL-Abfrageanweisung? Das langsame Abfrageprotokoll von MySQL ist ein von MySQL bereitgestellter Protokolldatensatz, der zum Aufzeichnen von Anweisungen verwendet wird, deren Antwortzeit den Schwellenwert in MySQL überschreitet. Es bezieht sich insbesondere auf SQL, deren Laufzeit den long_query_time-Wert überschreitet . Wird im langsamen Abfrageprotokoll aufgezeichnet.

Der Standardwert von long_query_time ist 10, was bedeutet, dass Anweisungen länger als 10 Sekunden ausgeführt werden.

Standardmäßig startet die MySQL-Datenbank das langsame Abfrageprotokoll nicht. Wenn dies nicht für die Optimierung erforderlich ist, wird es im Allgemeinen nicht empfohlen, diesen Parameter zu starten, da er langsam ist Das Abfrageprotokoll wird mehr oder weniger Probleme verursachen. Es wird eine gewisse Auswirkung auf die Leistung haben. Das langsame Abfrageprotokoll unterstützt das Schreiben von Protokolldatensätzen in Dateien und auch das Schreiben von Protokolldatensätzen in Datenbanktabellen.

Erklärung der Parameter im Zusammenhang mit der langsamen MySQL-Abfrage:

    slow_query_log: Gibt an, ob das langsame Abfrageprotokoll aktiviert werden soll. 1 bedeutet „Ein“, 0 bedeutet „Aus“.
  • log-slow-queries: Alte Version (Version unter 5.6) Speicherpfad für langsames Abfrageprotokoll der MySQL-Datenbank. Sie können diesen Parameter nicht festlegen und das System verwendet standardmäßig eine Standarddatei host_name-slow.log
  • slow-query-log-file: die neue Version (5.6 und höher) des langsamen Abfrageprotokollspeicherpfads der MySQL-Datenbank. Sie können diesen Parameter nicht festlegen und das System verwendet standardmäßig eine Standarddatei host_name-slow.log
  • long_query_time: langsamer Abfrageschwellenwert. Wenn die Abfragezeit den festgelegten Schwellenwert überschreitet, werden Protokolle aufgezeichnet.
  • log_queries_not_using_indexes: Abfragen, die keine Indizes verwenden, werden auch im langsamen Abfrageprotokoll protokolliert (optional).
  • log_output: Protokollspeichermethode. log_output='FILE' bedeutet, das Protokoll in einer Datei zu speichern, und der Standardwert ist 'FILE'. log_output='TABLE' bedeutet, das Protokoll in der Datenbank zu speichern.
slow_query_log

Standardmäßig ist der Wert von slow_query_log AUS, was bedeutet, dass das langsame Abfrageprotokoll deaktiviert werden kann, indem der Wert von slow_query_log wie unten gezeigt eingestellt wird:

mysql> show variables  like '%slow_query_log%';
 +---------------------+-----------------------------------------------+
 | Variable_name       | Value                                         |
 +---------------------+-----------------------------------------------+
 | slow_query_log      | OFF                                           |
 | slow_query_log_file | /home/WDPM/MysqlData/mysql/DB-Server-slow.log |
 +---------------------+-----------------------------------------------+

rows in set (0,00 Sek.)

mysql> set global slow_query_log=1;
 Query OK, 0 rows affected (0.09 sec)
Die Verwendung von set global slow_query_log=1 zum Aktivieren des langsamen Abfrageprotokolls hat nur Auswirkungen auf die aktuelle Datenbank und wird nach dem Neustart von MySQL ungültig.

Wenn Sie möchten, dass es dauerhaft wirksam wird, müssen Sie die Konfigurationsdatei my.cnf ändern (dasselbe gilt für andere Systemvariablen).

my.cnf Um die Parameter slow_query_log und slow_query_log_file hinzuzufügen oder zu ändern, wie unten gezeigt

slow_query_log = 1
slow_query_log_file = /tmp/mysql_slow.log

Starten Sie dann den MySQL-Server neu.

slow_query_log_file

Dieser Parameter wird verwendet, um den Speicherpfad des langsamen Abfrageprotokolls anzugeben. Der Standardwert ist die Datei „host_name-slow.log“

mysql> show variables like 'slow_query_log_file';
 +---------------------+-----------------------------------------------+
 | Variable_name       | Value                                         |
 +---------------------+-----------------------------------------------+
 | slow_query_log_file | /home/WDPM/MysqlData/mysql/DB-Server-slow.log |
 +---------------------+-----------------------------------------------+
 1 row in set (0.00 sec)

Empfohlenes Lernen:

MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist eine langsame MySQL-Abfrageanweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn