Maison > base de données > tutoriel mysql > Comment utiliser le journal des requêtes lentes de MySQL pour localiser les goulots d'étranglement des performances

Comment utiliser le journal des requêtes lentes de MySQL pour localiser les goulots d'étranglement des performances

王林
Libérer: 2023-08-04 16:31:45
original
892 Les gens l'ont consulté

Comment utiliser le journal des requêtes lentes de MySQL pour localiser les goulots d'étranglement des performances

Les goulots d'étranglement des performances sont l'un des problèmes auxquels les applications de base de données sont souvent confrontées, et la fonction de journal des requêtes lentes fournie par MySQL peut nous aider à trouver des instructions de requête lentes, puis à localiser les goulots d'étranglement des performances. Cet article explique comment utiliser le journal des requêtes lentes de MySQL pour localiser les goulots d'étranglement des performances et fournit des exemples de code correspondants.

1. Activer le journal des requêtes lentes
Pour utiliser la fonction de journal des requêtes lentes, vous devez d'abord activer l'option de configuration correspondante. Ouvrez le fichier de configuration MySQL (généralement my.ini ou my.cnf), recherchez le nœud [mysqld] et ajoutez la configuration suivante sous le nœud :

slow_query_log = 1 # Activer le journal des requêtes lentes
slow_query_log_file = /var/log/ mysql/ slow_query.log # Chemin du fichier journal des requêtes lentes
long_query_time = 1 # Les instructions qui prennent plus d'une seconde à interroger seront enregistrées comme des requêtes lentes

Après avoir enregistré et fermé le fichier de configuration, redémarrez le service MySQL pour activer la requête lente fonction de journalisation.

2. Vérifiez le journal des requêtes lentes
Lorsque votre serveur MySQL fonctionne depuis un certain temps, le fichier journal des requêtes lentes enregistrera les instructions qui prennent plus de temps que le paramètre long_query_time. Vous pouvez utiliser la commande suivante pour afficher le journal des requêtes lentes :

sudo tail -n 100 /var/log/mysql/slow_query.log # Afficher les 100 dernières instructions de requêtes lentes

Cela affichera les informations détaillées des 100 dernières instructions de requête lentes, y compris les instructions de requête, le temps d'exécution, etc.

3. Analysez le journal des requêtes lentes
Le journal des requêtes lentes donne le temps d'exécution de l'instruction de requête. En analysant ces instructions de requête lentes, nous pouvons trouver le goulot d'étranglement des performances. Voici quelques méthodes courantes d'analyse des journaux de requêtes lentes :

  1. Trouver la même instruction de requête
    En trouvant la même instruction de requête, nous pouvons comprendre quelles requêtes sont exécutées fréquemment. Si une requête apparaît fréquemment dans le journal des requêtes lentes, vous pouvez envisager de l'optimiser. Par exemple :

SELECT * FROM user WHERE name = 'John';

Vous pouvez améliorer les performances en ajoutant des index ou en ajustant les instructions de requête.

  1. Vérifiez si l'index est utilisé correctement
    Le journal des requêtes lentes enregistrera le temps d'exécution de l'instruction de requête. Vous pouvez juger si l'index est utilisé correctement en analysant l'instruction de requête avec un temps d'exécution long. Si vous utilisez une analyse de table complète sans utiliser d'index, vous pouvez envisager d'ajouter des index appropriés pour optimiser la vitesse des requêtes.
  2. Suivez le plan d'exécution de l'instruction de requête
    MySQL fournit la commande EXPLAIN pour afficher le plan d'exécution de l'instruction de requête. Vous pouvez comprendre comment la requête est exécutée en analysant le plan d'exécution. Par exemple :

EXPLAIN SELECT * FROM user WHERE age > 18;

Vous pouvez vérifier si la requête utilise des index, quels index sont utilisés et d'autres informations. En fonction du plan d'exécution, vous pouvez ajuster l'instruction de requête ou ajouter des index pour améliorer les performances.

Ce qui suit est un exemple de code qui montre comment utiliser la commande EXPLAIN pour afficher le plan d'exécution d'une instruction de requête :

EXPLAIN SELECT * FROM user WHERE age > 18;
Copier après la connexion

4. Optimiser les instructions de requête
En analysant le journal des requêtes lentes, nous pouvons trouver les instructions de requête dont nous avons besoin. à optimiser. En fonction de la situation spécifique, vous pouvez choisir les méthodes d'optimisation suivantes :

  1. Ajouter un index : si la clause WHERE ou l'instruction JOIN est utilisée dans la requête, vous pouvez envisager d'ajouter des index appropriés pour optimiser la vitesse de la requête.
  2. Optimiser les instructions de requête : vous pouvez améliorer les performances des requêtes en ajustant l'ordre des instructions de requête et en évitant les sous-requêtes inutiles.
  3. Utilisez la mise en cache et les tampons : vous pouvez utiliser la fonction de mise en cache de MySQL pour réduire la surcharge d'E/S des requêtes et augmenter la vitesse des requêtes.

Ci-dessus sont quelques méthodes et exemples de codes permettant d'utiliser le journal des requêtes lentes de MySQL pour localiser les goulots d'étranglement des performances. En analysant les journaux de requêtes lentes et en adoptant des stratégies d'optimisation correspondantes, les performances des applications de base de données peuvent être efficacement améliorées. J'espère que cet article vous sera utile !

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:php.cn
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