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

Comment activer le journal lent des requêtes MySQL

WBOY
WBOYavant
2023-05-27 12:31:143786parcourir

1. Qu'est-ce que le journal lent des requêtes MySQL

Le journal lent des requêtes MySQL est un outil d'analyse des performances fourni avec MySQL. Utiliser Pour enregistrer les demandes de requête qui dépassent le seuil de temps spécifié. Le journal des requêtes lentes enregistre différents indicateurs de performances de chaque requête, tels que le temps requis, le nombre d'exécutions et le plan d'exécution. Les développeurs peuvent utiliser ces métriques pour identifier les requêtes qui nécessitent une optimisation pour améliorer l'efficacité et prendre les mesures appropriées.

Par défaut, le journal des requêtes lentes de MySQL n'est généralement pas activé et nécessite une configuration manuelle pour l'activer. L'interrogation du journal lent peut être activée en définissant les paramètres dans le fichier de configuration MySQL (my.cnf). Voici un exemple de configuration pour interroger le journal lent :

slow_query_log = 1

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

# 🎜🎜 #log_queries_not_using_indexes = 1

long_query_time = 2

Parmi eux, le paramètre slow_query_log est utilisé pour activer les journaux de requêtes lentes, le paramètre slow_query_log_file spécifie l'emplacement du journal de requêtes lentes et 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 des requêtes lentes MySQL

Par défaut, MySQL 5.7 et supérieur active le journal des requêtes lentes. Une configuration manuelle est nécessaire pour activer la fonctionnalité de journalisation lente des requêtes, en particulier pour les anciennes versions de MySQL telles que MySQL 5.6 ou 5.5, etc. Voici les étapes détaillées pour activer les journaux lents des requêtes MySQL :

  1. Ouvrez le fichier de configuration MySQL

Par par défaut, le chemin du fichier de configuration MySQL dans le système Linux est /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 # de cette ligne et remplacez la valeur par 1.

slow_query_log = 1

    Spécifiez le chemin du fichier journal lent
  1. Rechercher la ligne suivante :

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

Supprimez le symbole de commentaire # de cette ligne et remplacez le chemin du fichier par celui que vous je veux un chemin.

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

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

    Recherchez la ligne suivante :
long_query_time = 10

Supprimez le symbole de commentaire # de la ligne et remplacez la valeur par la requête souhaitée. Seuil d'expiration en quelques secondes.

long_query_time = 2

Configurez le commutateur pour indexer les informations inutilisées
  1. Recherchez la ligne suivante :

log_queries_not_using_indexes = 0
  • Supprimez le symbole de commentaire # de cette ligne et remplacez it Remplacez la valeur par 1 pour activer les index de requêtes lentes inutilisés dans les opérations de journalisation. # 🎜🎜 ## 🎜🎜 # log_queries_not_using_indexes = 1 # 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 # Enregistrer et fermer le fichier de configuration # 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 # chèque configuration Si le fichier a été enregistré et fermez le fichier.

Redémarrer le service MySQL

  1. 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 , puis interrogez le journal lent. Les informations sur la requête seront automatiquement enregistrées et stockées dans le fichier journal lent de la requête spécifié. Vous pouvez utiliser la commande suivante pour afficher le journal des requêtes lentes :
  1. sudo tail -n 100 /var/log/mysql/mysql-slow.log

  2. 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. La sortie inclura le temps requis pour exécuter la requête lente et toutes les tables de données 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 Les horodatages de tous les journaux de requêtes lentes du 21 juin 2022 seront affichés.

4. Comment analyser et optimiser les journaux lents des requêtes MySQL

Après avoir collecté suffisamment de journaux lents des requêtes MySQL, vous pouvez les analyser pour déterminer quelles requêtes doivent être optimisées. Voici quelques bonnes pratiques pour analyser et optimiser les performances des requêtes : 🎜🎜#

pt-query-digest est un logiciel open source qui peut vous aider à analyser les journaux lents des requêtes MySQL et à optimiser les problèmes qui y surviennent. 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.rpmyum installez percona-toolkit

  • Analyser les journaux de requêtes lentes

Vous pouvez utiliser la commande suivante pour utiliser pt-query-digest pour analyser les journaux de requêtes lentes.

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

  • Analyser le journal lent des requêtes

Utilisez pt-query-digest pour en obtenir un détaillé rapport d'analyse des journaux de requêtes lentes. Vous pouvez rechercher les requêtes qui se produisent le plus fréquemment et qui ont les délais d'attente les plus longs et identifier celles qui nécessitent une optimisation.

  1. Utiliser les champs d'index

Le journal des requêtes lentes MySQL enregistre toutes les requêtes qui n'ont pas réussi à utiliser l'index. Vous pouvez utiliser ces informations pour déterminer quelles requêtes n'utilisent pas les index de champ appropriés pour accélérer la requête. L'ajout d'index dans MySQL peut considérablement optimiser les performances des requêtes. Il est important de noter que l’ajout d’un trop grand nombre d’index peut réduire les performances des requêtes, car cela peut augmenter le coût 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 considérablement améliorer la vitesse des requêtes. Si les résultats de la requête sont déjà stockés dans le cache, vous pouvez éviter l'exécution de la requête et la surcharge des ressources et renvoyer les résultats directement. 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

Les performances du serveur MySQL peuvent être optimisées en ajustant divers paramètres pour optimiser l'ensemble de la base de données. 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.

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