Maison > base de données > tutoriel mysql > 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
Libérer: 2022-09-14 19:43:52
avant
2514 Les gens l'ont consulté

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;
Copier après la connexion

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;
Copier après la connexion

Définissez la méthode de stockage des requêtes lentes (redémarrage invalide)

set global  log_output = file;
Copier après la connexion

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%';
Copier après la connexion

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';
Copier après la connexion

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
Copier après la connexion

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)
Copier après la connexion
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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

五、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;
Copier après la connexion

推荐学习: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!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal