Surveiller toutes les requêtes SQL dans MySQL
Microsoft SQL Server dispose d'un outil appelé Profiler que vous pouvez utiliser pour surveiller chaque requête SQL qui atteint la base de données. Ceci est extrêmement utile pour les programmeurs ainsi que les administrateurs de base de données pour résoudre les requêtes exactes générées par une application..
Ayant fréquemment utilisé MySQL, c’est l’une des premières choses que je voulais comprendre. Sinon, comment pouvez-vous voir le code SQL réel généré par WordPress ou phpBB?
La première chose à faire est d'activer la journalisation des requêtes dans MySQL. Soyez averti que cela ne devrait être fait que dans le développement… cela ralentit vraiment le processus d'enregistrement de chaque requête dans un fichier.
Recherchez et ouvrez votre fichier de configuration MySQL, généralement /etc/mysql/my.cnf sur Ubuntu. Recherchez la section intitulée «Journalisation et réplication».
#
# * Journalisation et réplication
#
# Les deux emplacements sont tournés par le cronjob.
# Sachez que ce type de journal tue les performances.log = /var/log/mysql/mysql.log
Décommentez simplement la variable «log» pour activer la journalisation. Redémarrez MySQL avec cette commande:
sudo /etc/init.d/mysql restart
Nous sommes maintenant prêts à commencer à surveiller les requêtes dès leur arrivée. Ouvrez un nouveau terminal et exécutez cette commande pour faire défiler le fichier journal, en modifiant le chemin si nécessaire..
tail -f /var/log/mysql/mysql.log
Maintenant, lancez votre application. Vous verrez les requêtes de base de données commencer à voler dans la fenêtre de votre terminal. (assurez-vous que le défilement et l'historique sont activés sur le terminal)
Je suis impressionné, phpbb3 a un code SQL assez optimisé et optimisé. WordPress, en revanche, est très inefficace.