[WordPress] Debug-Queries, un plugin pour analyser les requêtes SQL de votre blog


Depuis quelques temps, mon blog se traine. Effet d’une reprise du trafic ou véritable problème dû à un plugin mal codé? Je n’ai pas encore la réponse, mais quoiqu’il en soit, je suis sur le coup.

Pour m’aider dans mes démarches, j’ai cherché à analyser les requêtes SQL qui sont orchestrées par la plateforme WordPress.

Il y a plusieurs techniques dont celle de développer un objet qui va s’intercaler entre la base de données et le moteur de blog. Mais WordPress possède déjà une classe méconnue, qui avec un peu de tuning peut rapidement vous rendre de fiers services.

Dans la classe PHP wpdb du fichier /wp-includes/wp-db.php, une constante nommée SAVEQUERIES est définie. Bizarrement celle-ci ne se trouve pas dans le fichier wp-config.php.

if (!defined('SAVEQUERIES'))
define('SAVEQUERIES', false);
 
class wpdb {
 
var $show_errors = true;
var $num_queries = 0;
var $last_query;
var $col_info;
var $queries;
var $prefix = '';
 
...

Le simple fait de changer la valeur de SAVEQUERIES à true, va vous donner accès à une foule d’informations dont la plus intéressante est la capacité d’afficher les requêtes SQL brutes (c’est à dire lisibles).

Vous pouvez à partir de là, journaliser les requêtes et les analyser à posteriori. Mais le mieux est de le faire en live, directement sur les pages concernées par les requêtes.

Debug-Queries est un plugin qui exploite la possibilité offerte par la constante SAVEQUERIES de présenter les requêtes SQL de WordPress directement sur les pages du blog.

debug-queries-plugin-wordpress-websourcing-fr

Les requêtes sont toutes présentées et détaillées. Le plugin vous donne le temps, la requête SQL complète avec ses paramètres et la fonction PHP appelante.

Il est ainsi possible de trouver où se situe le goulot d’étranglement.

A noter que l’affichage ne concerne que les administrateurs du site. Les autres visiteurs ne voient (heureusement) pas cet encart.

Il faut tout de même s’y connaitre, à la fois en PHP et en SQL. A réserver donc aux spécialistes et aux Webworkers qui interviennent sur ce genre de problèmes.

Téléchargez le plugin Debug-Queries pour WordPress