Maison  >  Article  >  base de données  >  Fonctionnement pratique du journal des requêtes lentes MySQL (analyse graphique et textuelle)

Fonctionnement pratique du journal des requêtes lentes MySQL (analyse graphique et textuelle)

WBOY
WBOYavant
2022-09-14 17:28:022450parcourir

Apprentissage recommandé : Tutoriel vidéo MySQL

1. Présentation

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.

2. Paramètres du journal des requêtes lentes

1. Paramètres temporaires

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 :

    slow_query_log :
  • Est-il déjà ouvert pour interroger
  • slow_qury_log_file :
  • Journal des requêtes lentes Chemin du fichier
  • long_query_time :
  • Les requêtes qui dépassent le nombre de secondes sont écrites dans le journal
  • log_queries_not_using_indexes Si la valeur est définie sur ON, toutes les requêtes qui n'utilisent pas d'index seront enregistrées (activez-le pendant l'exécution optimisation, ne l'activez pas normalement)

3. Vérifiez le format de stockage des journaux

show variables like 'log_output';

4. Activez définitivement les journaux lents

Modifiez my.cnf

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

mysqldumpslow est le propre outil de MySQL pour analyser les requêtes lentes. L'outil est un script Perl.

Les paramètres couramment utilisés sont les suivants :

    -s :
  • méthode de tri, les valeurs sont les suivantes
  • c :
  • nombre de requêtes
  • t :
  • temps de requête
  • l :
  • heure de verrouillage
  • r:
  • Enregistrements retournés
  • ac:
  • Nombre moyen de requêtes
  • al:
  • Durée de verrouillage moyenne
  • ar:
  • Enregistrements moyens retournés
  • à:
  • Durée moyenne des requêtes
  • -t :
  • topN requêtes
  • -g :
  • expression régulière
Obtenez les 5 instructions SQL les plus visitées :

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

五、MySQL 清理slowlog方法

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer