Skip to main content

Surveiller toutes les requêtes SQL dans MySQL

Surveiller toutes les requêtes SQL dans MySQL

Geoffrey Carr

Microsoft SQL Server dispose d’un outil appelé Profiler que vous pouvez utiliser pour surveiller toutes les requêtes SQL adressées à 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 l'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».

## * Logging and Replication## Both location gets rotated by the cronjob.# Be aware that this log type is a performance killer.

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 à mesure qu’elles arrivent. 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.

Link
Plus
Send
Send
Pin