Un concentré de tutoriels, de services en ligne et de geekeries...

2 conseils pour nettoyer et optimiser votre base de données WordPress

Publié par :

Mauvaise surprise en ce week-end, non pas la pluie qui s’abat sur ma charmante ville de Perpignan depuis déjà 2 semaines mais plutôt un mail pas très plaisant de la part de mon hébergeur. En effet, au réveille samedi matin, mon café à la main, OVH m’annonce que ma base de données est remplie à plus de 90% et que si jamais je ne fais rien pour l’alléger de quelques Mégaoctets, elle serait alors suspendue avec comme résultat final : PassioN @Net HS.

C’est mal connaître Julien, je vous le dis car à l’heure où j’écris ces quelques lignes, ma tendre et cher base de données est passée de 48 Mo à seulement 7 Mo. Voici mes astuces …

Pensez à sauvegarder votre base de données avant d'y apporter n'importe quelle modification. Pour cela, vous pouvez utiliser l'extension WordPress Database Backup


Supprimer les révisions d’articles

Ce qui est intéressant dans WordPress c’est de pouvoir sauvegarder un article en cours de rédaction pour pouvoir le reprendre plus tard ou tout simplement pour le planifier à une date bien précise. Malheureusement le CMS abuse trop des bonnes choses et créer des sauvegardes à tout va ce qui au final encombre fortement la base de données. Pour remédier à ce problème, il peut être intéressant d’enregistrer uniquement les 3 ou 5 dernières sauvegardes. Voici comment faire :

Connectez-vous à la racine de votre blog WordPress à l’aide d’un client FTP, éditez le fichier « wp-config.php » puis ajoutez la ligne suivante à la fin.

// Limite à 5 sauvegardes, la révision des articles
define('WP_POST_REVISIONS', 5);

Ceci permet de dire à WordPress d’enregistrer uniquement les 5 dernières sauvegardes créées. Si vous souhaitez désactiver complètement le système de révision, ajoutez cette ligne à la place de la précédente.

// Désactive la révision des articles
define('WP_POST_REVISIONS', false);

Voilà, votre base de données est un peu plus optimisée mais pas encore nettoyée. Pour supprimer les anciennes révisions, vous allez devoir exécuter la requête SQL suivante :
(n’oubliez pas de modifier le préfixe de vos tables si nécessaire)

DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';

Grâce à cette première modification, ma base de données est passée de 48 Mo à 14 Mo. Autant dire que ce n’est pas négligeable du tout. Passons à la deuxième optimisation …

Nettoyer les tables d’Akismet

Vous connaissez et vous utilisez (en tout cas je vous le conseil) très certainement Akismet, le célèbre plugin permettant de lutter contre le spam sur votre blog WordPress. Ce dernier amasse de nombreuses informations au fil du temps et fait grossir de manière importante votre base de données. Afin d’offrir un grain d’optimisation à votre BDD, vous allez devoir effectuer un gros nettoyage de printemps aux tables créées par ce plugin. Voici comment faire :

La première chose à faire est de vérifier si des entrées contenues dans la table « wp_commentmeta » ne sont plus en relation avec la table des commentaires « wp_comments ». Pour cela, exécutez la requête SQL suivante :
(n’oubliez pas de modifier le préfixe de vos tables si nécessaire)

SELECT *
FROM wp_commentmeta
WHERE comment_id NOT IN (
SELECT comment_id
FROM wp_comments)

Si, après cette vérification, des entrées contenues dans la table « wp_commentmeta » ne sont plus en relation avec la table « wp_comments » , supprimez-les à l’aide de requête suivante :

DELETE FROM wp_commentmeta
WHERE comment_id NOT IN (
SELECT comment_id
FROM wp_comments)

Une fois les entrées inutiles supprimées, vous allez pouvoir vider la table « wp_commentmeta » des enregistrements liés à Akismet. Pour cela, effectuez dans un premier temps la requête SQL suivante :

SELECT *
FROM wp_commentmeta
WHERE meta_key LIKE "%akismet%"

Pour finir, supprimez le tout en exécutant cette dernière requête :

DELETE FROM wp_commentmeta
WHERE meta_key LIKE "%akismet%"

Grâce à cette deuxième et dernière modification, ma base de données est passée de 14 Mo à 7 Mo.

Si vous avez effectuez toutes les opérations décrites dans cet article, vous devriez à présent être en possession d’une base de données complètement vidée de choses inutiles et parée pour l’avenir. Pensez tout de même à optimiser le tout à l’aide des plugins WordPress Database Optimizer et Database Cache Reloaded Fix.

Et vous, avez-vous des conseils à nous donner pour nettoyer et optimiser nos bases de données ?

[Source]
[Source]

22


A propos de l'auteur

Jeune entrepreneur dans le secteur du bâtiment, en provenance du sud de la France, je profite de PassioN @Net pour partager avec vous mon expérience ainsi que mes découvertes dans le monde de l'internet !

Discussion

  1. MC-SIN  7 novembre, 2011

    Merci pour ces astuces fortes utiles! ;)

    (Répondre)
  2. Chob  7 novembre, 2011

    Merci Julien. J’avais reçu le même message sans trop savoir quoi en faire… J’ai suivi tes recos et tout s’est bien passé ! Question à 2 balles d’un néophyte : où peut-on voir la taille de la base de données ? Je suis également chez OVH, j’ai été dans Hébergement > Gestion de MySQL, mais la base n’a pas perdu 1 gramme.
    Bonne soirée,

    (Répondre)
  3. Julien  7 novembre, 2011

    @MC-SIN : avec plaisir :)

    @Chob : as-tu optimisé ta base de données à l’aide de l’extension WordPress Database Optimizer ?

    Il faut peut-être que tu attendes un petit peu, OVH ne doit pas forcément mettre à jour son manager tout de suite.

    (Répondre)
    • Chob  8 novembre, 2011

      Bon, j’attendais ce soir pour optimiser la base mais j’arrive à peine à accéder à mon admin tellement c’est lent. J’espère qu’il n’y a pas de relation de cause à effet… C’est ça qui est un peu saoulant avec WP, c’est que si tu es un peu juste techniquement, tu es vite largué…

      (Répondre)
  4. Léa  8 novembre, 2011

    Bon, y’a plus qu’à, avant d’en arriver à ce stade.
    Merci pour ces infos!!

    (Répondre)
  5. Tayo  8 novembre, 2011

    40 mo?! Bha purée, fallait nettoyer j’avoue, 40 mo c’est un site contenant au moins 10000 articles ;op)
    Sinon je ne savais pas que Akismet prenait autant de place de ce côté. Je croyais que tout était sauvegardé en interne… chez akismet. Ils nous demandent une key pour rien alors ^^

    (Répondre)
  6. aalex57  8 novembre, 2011

    Merci pour l’astuce !

    (Répondre)
  7. Julien @ activités pour enfants  11 novembre, 2011

    Merci pour ces bons conseils Julien ! N’empêche tu y es allé fort pour utiliser 90% de tes 25 Go !

    (Répondre)
    • Julien  11 novembre, 2011

      Non je n’ai pas utilisé 90% de 25 Go mais plutôt de 50 Mo :)

      (Répondre)
  8. Chafik  15 novembre, 2011

    Merci pour ces astuces forts intéressantes !
    Je voulais savoir si ces manipulations sont à effectuer périodiquement ? si oui, avec quel intervalle (semaines, mois, années) ?
    Merci encore. ;)

    Chafik

    (Répondre)
    • Julien  15 novembre, 2011

      En effet, le mieux reste de le faire périodiquement, mais peut-être pas tous les mois. Personnellement, je dirais 3 à 4 fois par an. Tout dépend de la taille du blog :)

      (Répondre)
  9. Chafik  15 novembre, 2011

    Merci Julien pour ta réponse.
    Par contre j’ai pas essayé la 2ème astuce, c’est pas très clair pour quelqu’un qui ne s’y connait pas en BDD ! faut-il exécuter les requêtes une après une ou comment faire ?

    (Répondre)
    • Julien  16 novembre, 2011

      Oui en effet il faut que tu exécutes les requêtes les unes après les autres. La première permet de vérifier s’il y a des entrées inutiles et la deuxième les supprime. Pareille pour la troisième et la quatrième :)

      (Répondre)
  10. Chafik  20 novembre, 2011

    Je viens d’effectuer la 2ème astuce (Nettoyer les tables d’Akismet), ça marche impeccable. Ma BDD à encore « rétrécie ». :)
    Merci encore Julien. Un article à bookmarker !

    Chafik

    (Répondre)
  11. Jack  21 février, 2012

    Trop fort, Julien, aller hop 30 Mo de gagner sur la BDD, merci, ça va lui faire du bien cette petite cure.

    (Répondre)
  12. jack  21 février, 2012

    Aucun doute trop fort le gars !

    Je propose d’ailleurs que tu réalises des moulages en plâtre grandeur nature de ta personne pour les distribuer à tes fans qui pourront ensuite les peindre pour décorer leur intérieur.

    (Répondre)
    • Julien  21 février, 2012

      Mais tu sais que tu as de très bonnes idées Eric :D
      J’intégrerai également un petit widget au blog histoire de faire décoller les ventes :)

      (Répondre)
      • Jack  21 février, 2012

        Gros succès, c’est sûr, je te prends trois à condition que tu fournisses le matériel de peinture !

        (Répondre)
        • Julien  21 février, 2012

          Je fais un geste commercial, c’est pas un problème ça !

          (Répondre)

Laisser un commentaire