ALERTE !!!
J’ai remarqué deux tables étranges dans la base de données de WordPress.
Elles sont énormes !
Cela ralentit probablement certaines requêtes sur le site.
Mais aussi ça prend de la place pour rien.
Et les sauvegardes sont très très grosses !
Alors j’ai cherché un peu et il est possible de nettoyer les anciennes données régulièrement.
J’ai mis ce script bash (qui est un template) en tâche automatique :
#!/bin/bash
DB_USER='<%= @dbname %>'
DB_NAME='<%= @dbuser %>'
DB_PASSWORD='<%= @dbpassword %>'
INTERVAL='1 week'
MYSQL_COMMAND="mysql -N -u ${DB_USER} -p${DB_PASSWORD} ${DB_NAME} -e"
# Nettoyage table actions
SQL="SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME REGEXP '_actionscheduler_actions$' AND TABLE_SCHEMA = '${DB_NAME}';"
TABLE_ACTIONS=`${MYSQL_COMMAND} "${SQL}"`
SQL="DELETE FROM \`${TABLE_ACTIONS}\` WHERE \`scheduled_date_local\` < now() - interval ${INTERVAL};"
${MYSQL_COMMAND} "${SQL}"
# Nettoyage table logs
SQL="SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME REGEXP '_actionscheduler_logs$' AND TABLE_SCHEMA = '${DB_NAME}';"
TABLE_ACTIONS=`${MYSQL_COMMAND} "${SQL}"`
SQL="DELETE FROM \`${TABLE_ACTIONS}\` WHERE \`log_date_local\` < now() - interval ${INTERVAL};"
${MYSQL_COMMAND} "${SQL}"
Il faut penser à paramétrer DB_USER, DB_NAME et DB_PASSWORD.
Maintenant, cela va maintenir une certaine limite de taille dans la base de données.
Bien sûr, il faut aussi avoir des indexes corrects pour ne rien ralentir.
Parfois, il est possible d’en ajouter pour accélérer WordPress, ça demande d’étudier la base de données et les extensions installées (ça prend du temps).