Aktivieren das langsame Abfrageprotokoll in MySQL

Mehvish Ashiq 30 Januar 2023
  1. das MySQL slow_query_log
  2. Aktivieren Sie MySQL slow_query_log in Windows/Ubuntu
Aktivieren das langsame Abfrageprotokoll in MySQL

Heute werden wir die MySQL-Shell unter Windows und Ubuntu 20.04 verwenden, um slow_query_log in MySQL zu aktivieren. Für dieses Tutorial verwenden wir MySQL Version 8.0 und Ubuntu 20.04.

das MySQL slow_query_log

Das MySQL slow_query_log enthält SQL-Anweisungen, deren Ausführung mehr als long_query_time Sekunden in Anspruch nimmt und mindestens min_examined_row_limit Zeilen (Datensätze) benötigt, um untersucht zu werden.

Die SQL-Abfragen, die im MySQL slow_query_log sichtbar werden, sind die Abfragen, deren Ausführung eine beträchtliche Zeit in Anspruch nimmt. Daher sind dies die Kandidaten, die optimiert werden müssen.

Standardmäßig ist das Protokoll für langsame Abfragen deaktiviert. Mal sehen, wie wir es unter Windows & Ubuntu 20.04 aktivieren können.

Aktivieren Sie MySQL slow_query_log in Windows/Ubuntu

Die unten angegebenen Abfragen können auf Windows- und Ubuntu-Betriebssystemen ausgeführt werden. Wir müssen zuerst die MySQL-Shell aufrufen und dann den folgenden Befehl ausführen, um MySQL slow_query_log zu aktivieren.

Beispielcode:

mysql> SET GLOBAL slow_query_log = 'ON';

Führen Sie nun die folgende Abfrage aus, um sicherzustellen, dass slow_query_log aktiviert ist.

Beispielcode:

mysql> SHOW VARIABLES LIKE '%slow%';

AUSGANG:

+-----------------------------+--------------------------+
| Variable_name               | Value                    |
+-----------------------------+--------------------------+
| log_slow_admin_statements   | OFF                      |
| log_slow_extra              | OFF                      |
| log_slow_replica_statements | OFF                      |
| log_slow_slave_statements   | OFF                      |
| slow_launch_time            | 2                        |
| slow_query_log              | ON                       |<====================
| slow_query_log_file         | DESKTOP-QF52OT4-slow.log |
+-----------------------------+--------------------------+
7 rows in set (0.01 sec)

Alternativ können wir den Befehl auch wie folgt ausführen, um zu sehen, ob das slow_query_log aktiviert ist oder nicht.

Beispielcode:

mysql> SHOW VARIABLES LIKE '%quer%';

AUSGANG:

+----------------------------------------+--------------------------+
| Variable_name                          | Value                    |
+----------------------------------------+--------------------------+
| binlog_rows_query_log_events           | OFF                      |
| ft_query_expansion_limit               | 20                       |
| have_query_cache                       | NO                       |
| log_queries_not_using_indexes          | OFF                      |
| log_throttle_queries_not_using_indexes | 0                        |
| long_query_time                        | 10.000000                |
| query_alloc_block_size                 | 8192                     |
| query_prealloc_size                    | 8192                     |
| slow_query_log                         | ON                       |<=========
| slow_query_log_file                    | DESKTOP-QF52OT4-slow.log |
+----------------------------------------+--------------------------+
10 rows in set (0.00 sec)

Siehe die vorletzte Zeile in beiden Ausgaben (oben angegeben). Das slow_query_log ist jetzt ON.

Sobald wir slow_query_log aktiviert haben, können wir auch andere Optionen aktivieren. Beispielsweise können wir auch die Zeit aktualisieren, die eine Abfrage benötigt, um ausgeführt zu werden, bevor sie protokolliert wird.

Beispielcode:

mysql> SET GLOBAL long_query_time = 20;
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL Query