Nettoyage des tables d’Akismet

Akismet est une extension pour le CMS WordPress d’utilité publique puisqu’elle élimine la nécessité de faire manuellement le ménage dans les commentaires pour y éliminer les spams qui polluent la plupart des blogs. Sur ce blog, ce ne sont pas moins que des centaines de commentaires bidon qui chaque jour sont éliminés par Akismet. Et cela dure depuis plus de trois ans…
Malheureusement, le plugin laisse de nombreuses lignes inutiles dans une table de la base de données WordPress qui la font grossir de façon importante.
C’est la table wp_commentmeta qui est concernée par cet embonpoint démesuré. Avec la méthode décrite ci-dessous, si votre blog a plusieurs années d’ancienneté, vous allez pouvoir gagner quelques Mo dans la table wp_commentmeta via quelques requêtes SQL salutaires. Pour ma part, cela m’a permis de réduire ma base de données WP de près de 30 Mo.
Les manipulations sont à faire depuis la console phpMyAdmin de votre hébergement Web en se positionnant en premier sur votre base de données WordPress. Si vous ne savez pas de quoi je parle, je pense qu’il est plus prudent que vous absteniez de faire toute manipulation.

logo-wordpress

  • La première étape consiste à trouver les lignes de la table wp_commentmeta qui ne sont plus reliées avec les entrées de la table wp_comments. Pour cela, exécuter cette requête qui va afficher ces lignes.
    SELECT *
    FROM wp_commentmeta
    WHERE comment_id NOT IN (
    SELECT comment_id
    FROM wp_comments)
  • S’il y a des entrées qui ne sont plus en relation, on les supprime avec la requête SQL suivante.
    DELETE FROM wp_commentmeta
    WHERE comment_id NOT IN (
    SELECT comment_id
    FROM wp_comments)
  • Une fois que les lignes inutiles ont été supprimées, il faut vider la table wp_commentmeta des enregistrements Akismet. La requête SQL suivante permet de les visualiser.
    SELECT *
    FROM wp_commentmeta
    WHERE meta_key LIKE "%akismet%"
  • Et pour finir, la requête SQL suivante permet de les supprimer.
    DELETE FROM wp_commentmeta
    WHERE meta_key LIKE "%akismet%"

Par précaution, les manipulations décrites sont à faire après avoir effectué une sauvegarde de sa base de données WordPress.

Les commentaires sont fermés.