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

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

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
31 octobre, 2009
à 10:03
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
31 octobre, 2009
à 10:56
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
31 octobre, 2009
à 14:02
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
1 novembre, 2009
à 10:56
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
1 novembre, 2009
à 13:12
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 ! ;)
David [J'annonce gratuit]
3 novembre, 2009
à 18:54
Génial avec un nombre d’enregistrements effacés de 12623 ça fait du bien !!
Christian Binot
5 novembre, 2009
à 21:13
Merci, c’est effectivement à faire de temps en temps.
On est vite submergé par les commentaires.
Christian Binot
Patrick
7 novembre, 2009
à 14:14
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
9 novembre, 2009
à 21:57
merci , pour ma part le plugin je ne le connaissais pas
treintafouire
12 novembre, 2009
à 0:38
Merci pour l’astuce!
Très pratique cette extension. Ma base SQL ne faisant que 25 mo, chaque Ko est précieux ;)
serge
24 novembre, 2009
à 2:04
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
27 novembre, 2009
à 16:15
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!