Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Mysqldumpslow – Pour repérer rapidement vos requêtes SQL à optimiser

Si vous voulez analyser les requêtes SQL qui prennent le plus de temps sur votre serveur, je vous invite à activer le mode Slow Query de MySQL. Pour cela, rendez-vous dans votre fichier de conf MySQL :

sudo nano /etc/mysql/my.cnf

Puis décommentez les lignes suivantes :

slow_query_log_file = /var/log/mysql/mysql-slow.log
slow_query_log      = 1
long_query_time = 1

Capture d'écran de l'interface de Mysqldumpslow montrant les requêtes SQL les plus lentes

Relancez ensuite MySQL.

En passant, je ne sais pas si vous avez vu mais l’hébergeur Hostinger propose des offres super intéressantes en matière d’hébergement web. C’est pas trop cher pour démarrer et s’auto-héberger. (Lien affilié)

sudo /etc/init.d/mysql restart

Un nouveau fichier de log va alors se créer (/var/log/mysql/mysql-slow.log) et vous pourrez observer au bout de quelques minutes les requêtes qui mettent le plus de temps à s’achever. Mais dans ce fichier brut, c’est le bordel. Tout est en vrac et difficile de savoir quelles sont les requêtes qui sortent le plus fréquemment.

Heureusement, pour cela il existe un outil fourni avec MySQL baptisé mysqldumpslow, qui parcourt le fichier mysql-slow.log et qui vous affiche un résumé clair classé par nombre de requêtes. Vous pourrez ainsi détecter immédiatement les requêtes les plus lourdes qui passent le plus souvent et ainsi les optimiser.

mysqldumpslow /var/log/mysql/mysql-slow.log

Schéma montrant les étapes pour optimiser les requêtes SQL avec Mysqldumpslow

Pratique !


Les articles du moment