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, si vous cherchez un hébergeur web français au top, je vous conseille de jeter un œil à l’Offre Unique de o2switch. C’est puissant, illimité, et le rapport qualité-prix est imbattable pour se lancer ! (Lien partenaire)

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