Activer le journal des requêtes lentes dans MySQL

Mehvish Ashiq 30 janvier 2023
  1. Le slow_query_log de MySQL
  2. Activer MySQL slow_query_log dans Windows/Ubuntu
Activer le journal des requêtes lentes dans MySQL

Aujourd’hui, nous allons utiliser le shell MySQL sur Windows et Ubuntu 20.04 pour activer slow_query_log dans MySQL. Pour ce tutoriel, nous utilisons MySQL version 8.0 et Ubuntu 20.04.

Le slow_query_log de MySQL

Le slow_query_log MySQL contient des instructions SQL qui consomment plus de long_query_time secondes pour s’exécuter et nécessitent au moins min_examined_row_limit lignes (enregistrements) pour être examinées.

Les requêtes SQL qui apparaissent dans le slow_query_log de MySQL sont les requêtes qui consomment un temps d’exécution conséquent. Par conséquent, ce sont les candidats qui ont besoin d’être optimisés.

Par défaut, le journal des requêtes lentes est désactivé. Voyons comment nous pouvons l’activer sur Windows et Ubuntu 20.04.

Activer MySQL slow_query_log dans Windows/Ubuntu

Les requêtes ci-dessous peuvent être exécutées sur les systèmes d’exploitation Windows et Ubuntu. Nous devons d’abord entrer dans le shell MySQL, puis exécuter la commande suivante pour activer le slow_query_log de MySQL.

Exemple de code :

mysql> SET GLOBAL slow_query_log = 'ON';

Maintenant, exécutez la requête suivante pour vous assurer que slow_query_log est activé.

Exemple de code :

mysql> SHOW VARIABLES LIKE '%slow%';

PRODUCTION:

+-----------------------------+--------------------------+
| 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)

Alternativement, nous pouvons également exécuter la commande comme suit pour voir si le slow_query_log est activé ou non.

Exemple de code :

mysql> SHOW VARIABLES LIKE '%quer%';

PRODUCTION:

+----------------------------------------+--------------------------+
| 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)

Voir l’avant-dernière ligne dans les deux sorties (données ci-dessus). Le slow_query_log est ON maintenant.

Une fois que nous activons le slow_query_log, nous pouvons également activer d’autres options. Par exemple, nous pouvons également mettre à jour le temps nécessaire à une requête pour s’exécuter avant d’être enregistrée.

Exemple de code :

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

Article connexe - MySQL Query