Mysql : script "mysql_slow_log_parser.pl"

Soumis par lambda le dim 09/08/2009 - 01:51

Ce script de :  Nathanial Hendler   permet d'analyser finement le fameux "mysql-slow.log".

Rappel :
L'enregistrement des requêtes lentes ou des requêtes sans index se paramètre dans le fichier "my.cnf" :

# Here you can see queries with especially long duration
log_slow_queries    = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes

Ici les lignes sont décommentées afin d'activer l'enregistrement.
Attention, assez consommateur de ressources,peu conseillé sur des machines de production qui ont déjà des problèmes de temps de réponse .....

Una analyse visuelle de ce fichier peut être intéressante mais devient rapidement rébarbative, heureusement "mysql_slow_log_parser.pl" est arrivé.

Ce petit script Perl effectue un regroupement des "queries" coûteux en fournissant pour chaque query identifié :

  • le nombre d'occurences
  • le temps total utilisé et le temps moyen
  • le nombre de rangs analysés
  • un "modèle" du query, dépourvu des variables
  • un exemple de query avec les valeurs des variables

Ces résultats sont une mine d'or pour les développeurs car tous les ordres SQL critiques (criticables) apparaissent en clair avec même un exemple à soumettre à "EXPLAIN".
L'utilisation de ce module permet de repérer :

  • les index manquants ou non judicieux
  • les requêtes mal faites ...

Le comptage de chaque type de requête permt de se pencher d'abord sur les plus critiques (les plus nombreuses/coûteuses).

En bref un très bon outil que l'on peut trouver facilement sir Internet.