Astuce WordPress
11 August 2007Une petite astuce WordPress que j'ai découverte aujourd'hui même. En fait je cherchais quelque chose me permettant d'optimiser un petit peu les requêtes SQL faîtes par mon ami WordPress et j'ai trouvé cette petite astuce très facile à mettre en place.
Avant de vous dire comment faire, pourquoi faire ça ? C'est très simple, à chaque requête HTTP, Apache va "compiler" votre script PHP et éxécuter les requêtes SQL, ce qui induit des connections à votre base. Pour limiter cela, vous pouvez obtenir une connection persistante, qui restera ouverte et donc un gain de temps très apréciable. Car à la prochaine requête, vos requêtes seront exécutés à travers cette connection, plus d'ouverture/fermeture, l'éxécution est immédiate.
Mais il y a forcément une contrepartie à ce genre d'astuce n'est ce pas ? Eh bien oui, le gros soucis sera que lorsque vous chercherez dans une requête le dernier auto id généré afin d'insérer un nouvel élément dans votre table, il va vous renvoyer le dernier auto id généré, ce qui peut être celui d'une tout autre table et dans ce cas : c'est la catastrophe.
Bref, c'est une sorte de "risque" à prendre. Pour l'instant, je ne suis vraiment pas déçu, aucun problème et il me semble que le blog réponds bien plus rapidement.
Donc, pour le faire, allez dans le fichier wp-db.php que vous trouverez dans wp-includes/,cherchez mysqlconnect et changez le en mysqlpconnect. Rassurez vous, cela n'est écrit qu'une seule fois.
Quelle est votre avis sur la question ? Est ce que vous jugez cela pertinent ou non ? Est ce que vous trouvez que le blog a gagné en vitesse ? J'attends de voir car j'ia lu que cela pouvait vraiment avoir des effets très négligeable, de plus cela peut provoquer des limites de connections SQL, bref, j'attends de voir. Je sais que certains geeks bien plus éclairés que moi passent par là, n'hésitez pas à laisser votre avis si vous en savez plus.
Edit : En fait, ça doit être la plus mauvaise idée que j'ai eu. Je viens d'avoir des problèmes de connections car elles étaient bien trop nombreuses à être ouvertes et cela bloquait complètement le serveur. J'ai été obligé de redémarrer MySQL. Je suis donc gentiment revenu en arrière. Donc les connections persistantes au final, vous avez des connections qui se crée et qui ne se ferment jamais, ce qui provoque un engorgement complet de MySQL. Oubliez donc cette article, ça m'aurait servi de test.