Maison  >  Article  >  base de données  >  journal lent des requêtes MySQL

journal lent des requêtes MySQL

WBOY
WBOYoriginal
2023-05-14 10:05:375065parcourir

MySQL est un système de gestion de base de données relationnelle couramment utilisé avec de bonnes performances et une évolutivité dans le traitement de données à grande échelle. La requête est l'une des opérations les plus fréquemment utilisées. Cependant, lors du traitement de grandes quantités de données, les requêtes peuvent s'exécuter lentement pour diverses raisons, affectant les performances du système. Dans ce cas, vous devez utiliser le journal des requêtes lentes de MySQL pour identifier et optimiser les problèmes de performances des requêtes. Cet article présentera en détail les connaissances de base et l'application de la requête de journal lente MySQL.

1. Qu'est-ce que MySQL Query Slow Log ?

MySQL Query Slow Log est le propre outil d'analyse des performances de MySQL, utilisé pour enregistrer les requêtes de requête qui dépassent le seuil de temps spécifié. Le journal lent des requêtes enregistre divers indicateurs de performances de chaque requête, notamment le temps requis, le nombre d'exécutions, le plan d'exécution, etc. Grâce à ces métriques, les développeurs peuvent identifier les requêtes qui doivent être optimisées pour plus d'efficacité et prendre les mesures appropriées.

En général, le journal lent des requêtes MySQL n'est pas activé par défaut et doit être configuré manuellement pour l'activer. Dans le fichier de configuration MySQL (my.cnf), vous pouvez définir les paramètres du fichier de configuration pour activer le journal lent des requêtes. Voici un exemple de configuration pour interroger les journaux lents :

slow_query_log = 1

slow_query_log_file = /var/log/mysql/mysql-slow.log

log_queries_not_using_indexes = 1

long_query_time = 2

où le paramètre slow_query_log est utilisé activer Pour interroger le journal lent, le paramètre slow_query_log_file spécifie l'emplacement du fichier journal des requêtes lentes. Le paramètre log_queries_not_using_indexes est utilisé pour enregistrer les informations inutilisées de l'index de requête lente. Le paramètre long_query_time est utilisé pour spécifier le délai d'expiration de la requête en secondes.

2. Comment activer le journal lent des requêtes MySQL

Dans MySQL 5.7 et les versions supérieures, le journal lent des requêtes MySQL est activé par défaut. Pour les anciennes versions de MySQL, telles que MySQL 5.6 ou 5.5, une configuration manuelle est requise pour activer la fonction de journalisation lente des requêtes. Voici les étapes détaillées pour activer le journal lent des requêtes MySQL :

  1. Ouvrez le fichier de configuration MySQL

Dans les systèmes Linux, le fichier de configuration par défaut pour MySQL se trouve dans /etc/my.cnf. Dans les systèmes Windows, le fichier de configuration se trouve généralement dans C:Program FilesMySQLMySQL Servermy.ini ou C:ProgramDataMySQLMySQL Servermy.ini. Ouvrez le fichier avec votre éditeur préféré.

  1. Activer le journal lent des requêtes

Recherchez la ligne suivante dans le fichier de configuration :

slow_query_log = 0

Supprimez le symbole de commentaire # sur cette ligne et modifiez la valeur à 1.

slow_query_log = 1

  1. Spécifiez le chemin du fichier journal lent

Trouvez la ligne suivante :

slow_query_log_file = /var/log/mysql/mysql-slow.log

Supprimez le symbole de commentaire # sur cette ligne et supprimez le fichier Modifiez le chemin vers le chemin souhaité.

slow_query_log_file = /var/log/mysql/mysql-slow.log

  1. Configurer le délai d'expiration de la requête

Retrouvez la ligne suivante :

long_query_time = 10

Supprimez le symbole de commentaire # sur cette ligne et modifiez la valeur Give le seuil d'expiration de votre requête souhaité (en secondes).

long_query_time = 2

  1. Configurez le commutateur pour les informations d'index non utilisées

Trouvez la ligne suivante :

  • log_queries_not_using_indexes = 0

Supprimez le symbole de commentaire # sur cette ligne et remplacez la valeur par 1 pour permettre index de requêtes lentes inutilisées dans les opérations de journalisation.

log_queries_not_using_indexes = 1

  1. Enregistrez et fermez le fichier de configuration

Vérifiez si le fichier de configuration a été enregistré et fermez le fichier.

  1. Redémarrez le service MySQL

Utilisez la commande suivante pour redémarrer le service MySQL :

sudo systemctl restart mysqld

3 Comment afficher le journal des requêtes lentes MySQL

Une fois que vous avez activé le journal des requêtes lentes MySQL, le journal des requêtes lentes enregistrera automatiquement les informations de requête et les stockera dans le fichier journal lent des requêtes spécifié. Vous pouvez utiliser la commande suivante pour afficher le journal des requêtes lentes :

sudo tail -n 100 /var/log/mysql/mysql-slow.log

Utilisez cette commande pour afficher les 100 derniers enregistrements du journal des requêtes lentes. Vous pouvez également modifier le nombre de lignes affichées à votre guise. Dans le résultat, le temps nécessaire à l'exécution de la requête lente est affiché, ainsi que toutes les tables et sous-requêtes impliquées dans la requête.

Si vous devez interroger les journaux lents par filtrage par date, vous pouvez utiliser grep et awk pour filtrer les journaux sous Linux, comme indiqué ci-dessous :

grep "21-Jun-2022" /var/log/mysql/mysql-slow .log | awk '{print substr($2,0,length($2)-1)" "$3$4" "$5}' | less

Cette commande affichera tous les horodatages contenant des journaux de requêtes lentes le 21 juin 2022.

4. Comment analyser et optimiser les journaux de requêtes lentes MySQL

Une fois que vous avez collecté suffisamment de journaux de requêtes lentes MySQL, vous pouvez les analyser et découvrir les requêtes qui doivent être optimisées. Voici quelques bonnes pratiques pour analyser et optimiser les performances des requêtes :

  1. Analyser les journaux de requêtes lentes avec pt-query-digest

pt-query-digest est un logiciel open source qui peut vous aider à analyser les journaux de requêtes lentes de MySQL, et optimiser les problèmes qui se posent. Voici les étapes pour installer et utiliser pt-query-digest :

  • Installer Percona Toolkit

Sur CentOS 7, vous pouvez l'installer à l'aide de la commande suivante.

yum installez https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum installez percona-toolkit

  • Analyser le journal des requêtes lentes

Vous pouvez utiliser la commande suivante pour utiliser pt-query-digest pour analyser le journal des requêtes lentes.

pt-query-digest /var/log/mysql/mysql-slow.log > slow-query-analysis.out

  • Journal lent des requêtes d'analyse

pt-query-digest vous fournira un rapport d'analyse complet sur les journaux lents des requêtes. Vous pouvez rechercher les requêtes les plus fréquentes et celles dont les délais d'attente sont les plus longs, et identifier les requêtes qui nécessitent une optimisation.

  1. Utiliser les champs d'index

Le journal lent des requêtes MySQL enregistre toutes les requêtes qui n'ont pas utilisé l'index avec succès. Vous pouvez utiliser ces informations pour déterminer. quelles requêtes ne l'ont pas fait. Utilisez des index de champ appropriés pour accélérer les requêtes. L'ajout d'index dans MySQL peut considérablement optimiser les performances des requêtes. Cependant, il convient de noter que l'ajout d'un trop grand nombre d'index peut entraîner une diminution des performances des requêtes, car cela peut augmenter la surcharge des requêtes de requête et des opérations de mise à jour.

  1. Optimiser les instructions de requête

Le journal lent des requêtes peut vous indiquer quelles requêtes doivent être optimisées. Si le temps d'exécution dépasse le seuil défini, la requête sera enregistrée dans le fichier journal. Vous pouvez vérifier l'instruction de requête et essayer d'utiliser différentes instructions de requête pour optimiser la vitesse d'exécution.

  1. Utilisation du mécanisme de mise en cache

Le mécanisme de mise en cache peut grandement améliorer la vitesse des requêtes. Si les résultats de la requête existent déjà dans le cache, ils peuvent être renvoyés directement depuis le cache, évitant ainsi la surcharge liée à l'exécution de la requête. Les mécanismes de mise en cache peuvent être implémentés à l'aide de fournisseurs de cache tels que Redis et Memcached.

  1. Ajuster les paramètres du serveur MySQL

Dans le serveur MySQL, vous pouvez optimiser les performances de l'ensemble de la base de données en ajustant divers paramètres. Ces paramètres incluent la taille du cache MySQL, la limite de connexion, le délai d'expiration des requêtes, etc. En ajustant ces paramètres, les performances du service de base de données peuvent être optimisées pour des requêtes spécifiques.

Summary

MySQL Query Slow Log est un outil très utile pour vous aider à identifier et résoudre les problèmes de performances lentes des requêtes. Cet outil est facile à démarrer et à personnaliser, et les informations qu'il enregistre peuvent vous aider à analyser les performances des requêtes et à déterminer quelles requêtes nécessitent une optimisation. Suivre les meilleures pratiques et effectuer les optimisations appropriées peut améliorer les performances globales de votre serveur MySQL et vous aider à mieux gérer et maintenir des bases de données volumineuses.

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:
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
Article précédent:mysql mac mot de passe oubliéArticle suivant:mysql mac mot de passe oublié