WordPress : Nettoyer la table wp_commentmeta d’Akismet

Logo WordPressVous avez un blog sous WordPress et la table wp_commentmeta de votre base de données est en surpoids ? A défaut d’un quelconque régime, une intervention manuelle s’impose de toute urgence.

Au fil des mois et des années, la table wp_commentmeta – dont le préfixe peut varier – grossit de manière importante. Le responsable est Akismet, la célèbre extension anti-spam du système de gestion de contenu WordPress, comme vous l’aurez certainement remarqué au travers des différentes valeurs du champ meta_key : akismet_history, akismet_result, akismet_as_submitted, akismet_user_result et autre akismet_user.

Deux étapes sont envisageables dans cette procédure de nettoyage.

Il est dans un premier temps possible de supprimer les entrées de la table wp_commentmeta n’ayant plus de relation dans la table des commentaires wp_comments.

Pour se faire, après vérification via la requête suivante :

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

Exécuter la requête de suppression :

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

Il est possible d’aller plus loin en vidant la table wp_commentmeta des enregistrements liés à Akismet.

Une nouvelle fois, après vérification :

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

La requête de suppression sera la suivante :

DELETE FROM wp_commentmeta
WHERE meta_key LIKE "%akismet%"

Pour des questions de performance, il est vivement conseillé d’optimiser la table wp_commentmeta après exécution des requêtes SQL ci-dessus.

Dans mon cas, je suis passé d’une table d’un poids de 5.8 Mb à 7.3 Kb. Belle optimisation !

Baptiste Simon aka TiChou

Ingénieur développeur web dans le secteur du e-commerce et du tourisme mais avant toute chose passionné par internet et ses intarissables ressources.

18 commentaires, pings et rétroliens

Partenaires et blog à la une