Maison > Article > base de données > Fonctionnement pratique du journal des requêtes lentes MySQL (analyse graphique et textuelle)
Apprentissage recommandé : Tutoriel vidéo MySQL
Le journal des requêtes lentes de MySQL est un enregistrement de journal fourni par MySQL Il est utilisé pour enregistrer que le temps de réponse dans MySQL dépasse le seuil (long_query_time, unité. : secondes) Instruction SQL. Par défaut, MySQL ne démarre pas la journalisation lente des requêtes. Cet article présente brièvement comment activer les journaux de requêtes lentes et comment utiliser mysqldumpslow pour analyser les requêtes lentes.
Activer temporairement le journal des requêtes lentes (échec après le redémarrage)
set global slow_query_log = on;
Remarque : Si vous souhaitez désactiver le journal des requêtes lentes, exécutez simplement set global slow_query_log = off ; C'est tout.
Point critique du temps de requête lent temporaire Tout temps de requête supérieur à ce point critique sera enregistré dans le journal des requêtes lentes (redémarrage invalide)
set long_query_time = 1;
Définissez la méthode de stockage des requêtes lentes (redémarrage invalide)
set global log_output = file;
Explication : Vous pouvez voir que je l'ai défini sur fichier ici, ce qui signifie que mon journal de requêtes lentes est reflété via un fichier. La valeur par défaut est aucune. Nous pouvons le définir sur table ou fichier. S'il s'agit d'une table, les informations de requête lente. sera enregistré sur MySQL dans la table slow_log sous la bibliothèque. Étape 2, interrogez l'état d'ouverture du journal des requêtes lentes et l'emplacement du journal des requêtes lentes
show variables like '%quer%';Description du paramètre :
3. Vérifiez le format de stockage des journaux
show variables like 'log_output';
4. Activez définitivement les journaux lents
Ajoutez la section [mysqld] dans le fichier de configuration my.cnf (généralement /etc/my.cnf) Les paramètres suivants.
[mysqld]slow_query_log= 1slow_query_log_file= /var/lib/mysql/slow-query.log # 若没有指定,默认名字为hostname_slow.loglong_query_time= 1log_queries_not_using_indexes= 1
Parmi eux, slow_query_log = 1, signifie activer les requêtes lentes, 0 signifie désactiver
slow_query_log_file, spécifiez le chemin du journal des requêtes lentes, MySQL doit avoir l'autorisation d'écriture sur le chemin
long_query_time = 1, signifie le temps de requête >= 1 seconde Enregistrez les journaux, la valeur par défaut est 10s
log_queries_not_using_indexes = 1, indiquant que les instructions SQL qui n'utilisent pas d'index sont enregistrées
Redémarrez le service MySQL Après avoir redémarré MySQL, vous verrez le /var/lib/mysql/. fichier slow-query.log.
3. Test de requête lente
Créez une requête lente et exécutez-la. Comme suit :mysql> select sleep(1);+----------+
| sleep(1) |
+----------+
| 0 |
+----------+
1 row in set (1.00 sec)
Journal des requêtes lentes
Ouvrez le fichier journal des requêtes lentes. Vous pouvez voir que l'instruction SQL de la requête lente ci-dessus est enregistrée dans le journal.
4. Outil d'analyse des requêtes lentes
mysqldumpslow
top 5 instructions SQL triées par heure
$ mysqldumpslow -s t -t 5 /var/lib/mysql/slow-query.log
triées par heure et contenir "J'aime" les 5 meilleures instructions SQL
$ mysqldumpslow -s t -t 3 -g "like" /var/lib/mysql/slow-query.log
SET GLOBAL slow_query_log = 'OFF'; ALTER TABLEmysql.slow_log RENAME mysql.slow_log_drop; CREATE TABLE mysql.slow_log LIKEmysql.slow_log_drop; SET GLOBAL slow_query_log = 'ON'; DROP TABLE mysql.slow_log_drop;
推荐学习:mysql视频教程
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!