Maison > Article > base de données > Comment activer le journal lent des requêtes MySQL
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 = 1long_query_time = 2Parmi 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 :# 🎜 🎜#slow_query_log = 0
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
slow_query_log_file = /var/log/mysql/mysql-slow.log
# 🎜🎜#
Recherchez la ligne suivante :# 🎜🎜# sudo systemctl restart mysqld
sudo tail -n 100 /var/log/mysql/mysql-slow.log
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.
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.
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.
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.
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!