[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.
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.
![debug-queries-plugin-wordpress-websourcing-fr debug queries plugin wordpress websourcing fr 500x292 [Wordpress] Debug Queries, un plugin pour analyser les requĂȘtes SQL de votre blog](http://blog.websourcing.fr/files/2009/09/debug-queries-plugin-wordpress-websourcing-fr-500x292.png)
Téléchargez le plugin Debug-Queries pour WordPress







Citer #1 par maria le 24 février 2010 - 13:37
Merci pour ce plugin que j’ai testĂ©, trĂšs pratique l’assurance de bien debuguer son site..
J’ai trouvĂ© une version similaire qui peut ĂȘtre un peu plus « lisible » dans la forme: SQL Monitor
Mais je pense que c’est identique sur le reste
Citer #2 par Fabien le 24 février 2010 - 23:07
Hello
J’avais installĂ© ce plugin il y a un moment et puis… je viens d’avoir un magnifique plantage liĂ© Ă un trop grand nombre de connexions SQL donc je l’ai rĂ©activĂ©
As-tu rĂ©ussi Ă l’exploiter ?
Sans ĂȘtre rĂ©ellement perdu c’est un peu galĂšre quand mĂȘme ! :’(
Citer #3 par Lionel Roux le 24 février 2010 - 23:36
C’est clair qu’il faut dĂ©jĂ avoir une bonne idĂ©e du schĂ©ma de la base et de comment optimiser tout ca.
Je te conseille d’installer le plugin WP-DB-Cache ou un truc dans le genre, ca crĂ©e un vrai tampon pour les requĂȘtes courantes.
@+
Citer #4 par Fabien le 25 février 2010 - 00:27
C’est dĂ©jĂ fait c’est bien lĂ le problĂšme
En fait WP Super Cache + DB Cache Reloaded + Plugin Output Cache (pour les plugins de Rob Marsh, SJ) et pourtant ça dĂ©conne… Mes pages continuent Ă gĂ©nĂ©rer de 5 Ă 30 requetes mĂȘme aprĂšs mise en cache.
D’un autre cotĂ© j’ai un hĂ©bergement mutualisĂ© bon marchĂ© et 63 plugins activĂ©s
Sans aucun cache certaines pages gĂ©nĂšrent donc jusqu’Ă 100 requĂȘtes SQL ce qui est proprement honteux …
Peut on considĂ©rer que les temps de rĂ©alisation des requĂȘtes SQL sont proportionnels Ă la charge serveur gĂ©nĂ©rĂ©e ?
Y a t il un moyen quelconque de logger d’Ă©ventuelles erreurs SQL (hors log d’erreur Apache standard) ?
Citer #5 par Lionel Roux le 25 février 2010 - 10:13
63 plugins !!!!! Tu es sans doute le recordman du monde.
ne cherche pas plus loin, certains plugins sont codés avec les pieds, Il faut que tu isoles celui ou ceux qui consomment le plus, et que tu cherches des alternatives.
Pour les logs, tout dĂ©pend si tu as accĂšs Ă la base en tant qu’admin. je ne pense pas.
Et effectivement, le mutu n’arrange pas les choses. Pour avoir un meilleur mutu, je te conseille web4all.fr
Citer #6 par Fabien le 25 février 2010 - 11:29
C’est clair que 63 c’est bcp trop … :-$
Je pense passer en serveur dĂ©diĂ© ce sera plus cher mais comme comme j’ai plusieurs sites Ă hĂ©berger l’un dans l’autre ca me coutera pas bcp plus cher
En attendant une idĂ©e sur la façon d’identifier les fameux plugins trĂšs gourmands en utilisant Debug-Queries ?
DĂ©solĂ© je suis casse-pied et incompĂ©tent … mais je craque !