[Wordpress] Optimisez votre base de donnĂ©es en supprimant les « rĂ©visions » de billets
Si vous utilisez la plateforme Wordpress pour bloguer, et que vous avez installé une version récente (> 2.6), vous avez dû vous apercevoir que celle-ci est devenu plus gourmande en espace disque.
C’est notamment le cas Ă cause (ou « grâce » dans certains cas) de l’enregistrement des « rĂ©visions ».
Que sont les « rĂ©visions »?
Il s’agit de versions intermĂ©diaires de vos billets qui sont enregistrĂ©es au fur et Ă mesure que vous les Ă©crivez. Il s’agit d’une fonctionnalitĂ© très pratique lorsqu’on Ă©crit un billet en plusieurs fois ou Ă plusieurs par exemple, pour ne pas perdre un contenu que l’on aurait effacĂ©.
Cependant cette fonctionnalitĂ© s’avère gourmande en espace disque sur la base de donnĂ©es car chaque rĂ©vision prend grosso modo autant de place que le billet finalement publiĂ©.
Personnellement je me sers des rĂ©visions jusqu’Ă la publication finale. Mais après cette Ă©tape, je n’ai plus besoin de celles-ci. J’ai donc cherchĂ© un moyen de les supprimer pour optimiser ma base.
Pour cela, rien de plus simple; une simple ligne de SQL permet de faire un bon nettoyage. Les « rĂ©visions » ont un type associĂ© dans l’un des champ de la table des billets. il est donc très facile de l
DELETE FROM wp_posts WHERE post_type = "revision";
Il suffit d’exĂ©cuter cette directive dans l’interface d’administration de votre base de donnĂ©es comme PHPMyAdmin par exemple. Ce faisant, vous allègerez votre base de donnĂ©es.
Si vous ne souhaitez pas tout nettoyer, mais uniquement les billets écrit avant une certaine date, vous pouvez ajouter une clause pour cela.
Par exemple:
DELETE FROM wp_posts WHERE post_type = "revision" AND post_date < "2008-11-01";
Bien entendu, pensez Ă adapter la date Ă vos besoins.
Avant de supprimer, vous pouvez vérifier ce que la requête SQL va enlever. Exécutez pour cela la requête suivante:
SELECT ID, post_type, post_date FROM `wp_posts` WHERE post_type = "revision" and post_date < "2008-11-01" order by post_date desc;
Il peut arriver que la table s’appelle wp_1_posts (sur Wordpress mu par exemple).








Citer #1 par Laurent le 18 mai 2009 - 12:15
Bonjour,
La suppression par commande SQL fonctionne, merci !
Par contre, define (‘WP_POST_REVISIONS’, N); // remplacer N par le nombre de rĂ©visions souhaitĂ©es // ne fonctionne pas sur mon Wordpress 2.7.1
J’ai essayĂ© avec N=2 par exemple et si je sauvegarde un article plusieurs fois (bouton ‘mettre Ă jour’) j’ai autant de rĂ©visions que de clics (soit plus de 3…).
Laurent
Citer #2 par Lionel Roux le 18 mai 2009 - 22:57
Je viens de regarder dans mon WP-config.php. J’ai exactement ça:
define (‘WP_POST_REVISIONS’, 2);
et ça marche parfaitement.
Remplace peut-ĂŞtre les guillemets (ou en tout cas ne fais pas un copier coller du billet).
Citer #3 par Laurent le 19 mai 2009 - 13:36
Bonjour,
Merci de l’aide. C’est effectivement exactement ce que j’ai dans mon wp-config.php… mais pas au bon endroit !
Je l’avais mis trop tard, en fin de fichier, après /** RĂ©glage des variables de WordPress et de ses fichiers inclus. */
Maintenant que je l’ai mis plus haut dans le fichier, ça fonctionne. Merci encore