Blog de Portekoi : Programmation et Astuces

Programmation Cobol, Php, Asp, Java et DotNet…

Accélérer WordPress sur les gros sites

Dernièrement, j’ai du travailler sur un site fonctionnant sous un WordPress ayant dépassé les 900 billets et dont certaines tables dépassaient le Giga de données.

Avant tout, vous devez faire une sauvegarde de votre base de données.

Tout d’abord, sachez que WordPress enregistre toutes les « versions » de vos articles. Si vous en éditez un, la version précédente sera toujours en base.

Pour les visionner :

SELECT count(*) 
FROM `wp_posts` 
WHERE post_type = 'revision'

Pour les Supprimer (sauf ceux de 2013 ici) :

DELETE
FROM `wp_posts` 
WHERE post_type = 'revision'
AND post_date NOT LIKE '2013-%'

Sur la table wp_commentmeta, cette dernière contient des informations relatives aux posts… même quand ces derniers ont été supprimés :

Consultation :

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

Suppression :

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

Ensuite, si vous utilisez « Akismet » (extension Anti-Spam), ce dernier enregistre différentes données dans cette même table.

On peut donc là encore nettoyer un peu la table :

Consultation :

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

Suppression :

DELETE FROM wp_commentmeta  
WHERE meta_key LIKE "%akismet%"

Une fois que l’on nettoyé tout cela, exécuter la requête suivante :

Optimize table wp_commentmeta 

Ensuite, si vous utilisez le plugin « Redirection », videz la table wp_redirection_logs en effectuant :

Truncate Table wp_redirection_logs 

Pour optimiser cette même table :

Optimize table wp_redirection_logs 

Enfin, si vous utilisez le plugin « Top Commentator« , désactivez le.
Il est très très gourmand sur les grosses bases de données.

Un commentaire sur “Accélérer WordPress sur les gros sites

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *