picture picture
octobre 13, 2013 MySQL, WordPress 1 Commentaire

Help ! Ma base de données WordPress devient obèse…

sumoWordPress, c’est comme Windows ou comme les italiennes : slim à l’install, et fat au bout de 3 ans d’utilisation ^^ (aïe, je vais me faire des amies à Rome …)

Concrètement les sauvegardes deviennent de plus en plus lourdes, mais une petite astuce permet de mettre tout ce petit monde au régime très simplement […]

 

2 tables sont excessivement lourdes sans réelle nécessité :

1. Révisions des articles

d’une part la table « wp_posts » qui, par défaut, stocke toutes les révisions des articles en cours de rédaction. Ça peut être pratique… mais franchement, pas TOUTES !

Première étape : modifier le fichier « wp-config.php » (faites une sauvegarde auparavant)

// Ce bout de code permet d'enregistrer les 5 dernières sauvegardes de révisions par article : à ajouter en bas du fichier : 
define('WP_POST_REVISIONS', 5);

// Ce bout de code permet d'indiquer que les sauvegardes d'article se feront toutes les heures
define('AUTOSAVE_INTERVAL', 3600);

// Ce bout de code permet même de désactiver les sauvegardes des article
define('WP_POST_REVISIONS', false);


									

Deuxième étape :  2 requêtes qui vont permettre de supprimer toutes les « révisions » des articles :

// supprimer toutes les sauvegarde d’articles
DELETE FROM wp_posts WHERE post_type = 'revision';

// supprimer les sauvegardes  des  tables wp_term_relationship et wp_postmeta :
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';
									

 

2. Commentaires de spam avec Askimet

d’autre part la table « wp_commentmeta » garde en mémoire tous les commentaires de spams bloqués par Askimet, si vous l’utilisez.

Solution :

// Dans un premier temps, nous allons vérifier que cette commande nous retourne un résultat :

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

// Si c’est le cas, cela indique que vous avez des entrées qui ne sont plus en relation avec la table des commentaires, ce qui est bon signe, nous allons pouvoir faire du nettoyage.
Supprimez donc ces entrées avec la requête suivante:

DELETE FROM wp_commentmeta
WHERE comment_id NOT IN (
SELECT comment_id
FROM wp_comments);
 
// Nous allons aller encore plus loin à l’aide cette requête qui va permettre de nous lister tous les champs portant  le nom  "akismet"

SELECT *
FROM wp_commentmeta
WHERE meta_key LIKE '%akismet%';

// Si cette requête vous retourne des entrées, lancez donc cette requête:

DELETE FROM wp_commentmeta
WHERE meta_key LIKE '%akismet%';
									

 

3. optimiser votre base avec PHPMyAdmin

Sur l’interface PhpMyAdmin, cochez toutes vos bases et sélectionnez le mode « Optimiser la table »

source: http://alexblog.fr

One Response to “Help ! Ma base de données WordPress devient obèse…”

One Comment

  1. Serveur SMTP dit :

    Ce sont des requêtes à connaître. Il y en a d’autres tout aussi utiles. :-)

Commentaire

Name

Mail (ne sera pas publié)

Website

Laisser ces deux champs tels quels :
:D :-) :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: