Websourcing.fr

Websourcing.fr » ActualitĂ©s, Web, Logiciels et Fun

Image pour [Wordpress] Optimisez votre base de donnĂ©es en supprimant les « rĂ©visions » de billets

[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).


Cet article vous a plu ?

Commenter Laissez un commentaire | Recevez les mises à jour Souscrivez au flux RSS | Partager : Twitter AddInto Fuzz del.icio.us Wikio FR Blogonet
Websourcing.fr - Tous droits réservés. Reproduction interdite sans accord préalable.
  1. Répondre 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

    • Répondre 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).

      • Répondre 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

(Ne sera pas publié)