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;