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
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