Blog Tool Box

Nettoyer et optimiser la base de données de son blog

Lorsque votre blog est hébergé sur un « petit » serveur mutualisé, il se peut que, un jour (ou c’est déjà arrivé), vous arriviez à la limite de votre base de données SQL. Différents facteurs peuvent conduire à une « explosion » de la taille de la base de données de votre installation WordPress : sauvegardes automatiques des articles (post revisions), commentaires indésirables (spam) ou en attente de relecture (modération), plugin mal optimisé, etc.

Optimiser sa base de données sans plugin

Commentaires : depuis votre tableau de bord WordPress, onglet « Commentaires » / « Indésirables ». Blog Tool Box reçoit plus de 1000 commentaires de spam par mois, ainsi en cliquant sur « Supprimer tous les indésirables » nous gagnons de l’espace dans notre base.
Même principe pour les commentaires « en attente de relecture », vérifiez qu’il n’y a pas de commentaires légitimes puis supprimez tous les commentaires restants.

Sauvegardes automatiques : si vous êtes comme moi à enregistrer très souvent en cours de rédaction, vous vous retrouvez avec de très nombreuses sauvegardes pour chaque article.
Si vous avez un article qui fait 100Ko de texte et 5 sauvegardes automatiques pour celui-ci, cela fait 500Ko de perdus. Et si vous avez 100 articles comme ça, cela fait 50Mo de base de données perdus !

Supprimer les sauvegardes automatiques déjà enregistrées

Requête MySQL

Depuis phpMyAdmin de votre hébergement, cliquez sur le bouton « SQL » en haut à gauche pour exécuter cette requête qui supprimera toutes les sauvegardes automatiques :

DELETE FROM wp_posts WHERE post_type = "revision";

Empêcher ou limiter les sauvegardes automatiques

Ouvrez le fichier wp-config.php situé à la racine du répertoire où vous avez installé WordPress puis ajoutez (et adaptez) les lignes suivantes :

define ('WP_POST_REVISIONS', 5); // Définit le nombre maximal de sauvegardes automatiques par article
define('AUTOSAVE_INTERVAL', 3600); // Sauvegarde automatique toutes les heures

Si vous voulez que WordPress n’enregistre plus aucune sauvegarde automatique, mettez 0 au lieu de 5.

Optimiser les tables de la base de données

Pertes MySQL

En regardant la liste des tables de votre base de données depuis phpMyAdmin, vous devriez voir une colonne « Perte » pour certaines tables. Rien de bien inquiétant, lorsqu’il y a un ajout ou une suppression dans votre base de données, il arrive que MySQL ne nettoie pas correctement certains enregistrements ce qui résulte dans des pertes d’espace disque.
En bas de la liste des tables, cliquez sur « Cocher les tables avec pertes » puis « Pour la sélection : Optimiser » et c’est tout ! Plus de pertes pour un moment (mais ce n’est pas définitif).

Vérifier les plugins trop gourmands

Vous pouvez également jetez un œil pour voir si une table n’a pas un nombre d’enregistrements anormalement élevé. C’est souvent le cas avec certains plugins de statistiques qui créent un enregistrement à chaque visite sur votre blog… Si vous savez ce que vous faites, vous pouvez vider ces tables.

Optimiser sa base de données avec le plugin WP-Optimize

Pour faciliter ces manipulations, il existe le plugin WordPress WP-Optimize qui permet de nettoyer et d’optimiser sa base de données sans passer par phpMyAdmin :

  • Supprimer les sauvegardes automatiques d’un clic
  • Supprimer les commentaires indésirables et en attente modération d’un clic
  • Statistiques sur votre base de données : combien d’espace peut être optimisé et, après un clic, combien d’espace vous avez gagné, etc

Note : pas besoin d’être sur WordPress, vous pouvez également optimiser votre base de données et supprimer les commentaires indésirables si vous êtes sur une autre plateforme de blog.

  • mat

    Merci pour ces tuyaux bien utiles…
    Il m’arrive toutefois quelque chose de bizarre : OVH m’indique, au moment d’optimiser les tables avec pertes, que je ne peux pas les optimiser !

    « INSERT command denied to user »

    Qu’est-ce que je peux faire ?

    Mat

  • chibatop

    Une base de données est un univers où je me perds encore par manque d’expérience et je ne maîtrise pas encore mon blog.
    J’étais donc loin de penser aux petits détails.
    Sincèrement merci pour cet article!!!

  • thierry

    Merci pour le tuyau de sur config.php, perso je nettoie mes bases manuellement, tout comme mes backup, c’est devenu un rituel pour terminer la journée

  • Sophie

    Je pensais que les sauvegardes automatiques étaient réalisées les unes sur les autres.

    Pour les requêtes à faire sur la base de données un plugin serait le bienvenue :)

    Merci.

  • Edouard

    Déjà fait avec toi et c’est vrai que ca marche très très bien. Ma base de données ne pouvait pas accueillir tous mes posts revisions. Une fois virés, j’ai mieux respiré !

    Un grand merci, comme d’habitude ! ;)

  • Génial avec un nombre d’enregistrements effacés de 12623 ça fait du bien !!

  • Christian Binot

    Merci, c’est effectivement à faire de temps en temps.

    On est vite submergé par les commentaires.

    Christian Binot

  • Patrick

    Merci pour cet excellent article.
    C’est effectivement à faire régulièrement, notamment pour ceux qui sont hébergés sur des espaces sous-dimensionnés.

    Pat’

  • RequiemIM

    merci , pour ma part le plugin je ne le connaissais pas

  • treintafouire

    Merci pour l’astuce!
    Très pratique cette extension. Ma base SQL ne faisant que 25 mo, chaque Ko est précieux ;)

  • serge

    Merci pour l’astuce !!!
    J’ai trouvé l’article en faisant la recherche dans ma propre base des données avec
    %wp_post_revision% car l’option define ( ‘WP_POST_REVISIONS’ ,false); proposé ailleurs marche que si on modifie le wp-config.php avant d’installer le WordPress…
    Tu m’a sauvé énormément de temps, merci.

    Pour le plugin de gestion de la base de données je utilise WP-DBManager (ici http://lesterchan.net/portfolio/programming/php/#wp-dbmanager) qui permet d’automatiser beaucoup des choses et également exécuter une requête sql depuis le wp-admin.

    bonne continuation

  • Claire

    Perso j’utilise WPOptimise depuis longtemps, et je bénis son concepteur! mais je n’avais jamais pensé à faire les manips à la main, donc merci pour ces quelques explications!

  • Franck C.

    Comme tout le monde a dit : merci !

    Il est vrai que je ne comprenais pas pourquoi ma base de données se remplissait si vite, alors que j’ai encore peu d’articles, mais comme je fais pas mal de sauvegardes, en plus des automatiques…

    Maintenant je suis un peu plus tranquille !

  • laurent

    Impressionnant ! Ma BD est passée de 43.524 Mo à aujourd’hui 26.462 Mo rien qu’avec la suppression de sauvegarde auto et une optimisation !

    MERCI MERCI favoris direct :)

    Si jamais j’ai aussi un blog http://www.only-iphone.fr/ ;-)

  • anna

    Merci beaucoup ! Je cherchais justement à optimiser ma base sans passer par la gestion des contenus de wordpress, et bien sûr OVH ne m’a pas parlé de ces méthodes mais de la mise à niveau vers une offre plus chère !…
    elle est passée de 45 Mo à 3 Mo !!!!!