ACIDRE point COM

Jean-Luc NGUYEN, Développeur eZ Publish, PHP et MySQL, wordpress, SPIP et plus si affinités

eZ Publish : réduire la taille de la BDD

La BDD par défaut d’eZ Publish est installée avec plus d’une centaine de tables. Au fil du temps des contributions des contenus et des visites, il se peut que la taille de votre BDD prenne énormément d’aise et devienne une galère pour les sauvegardes BDD. Il est donc temps de faire place neuve.

Plusieurs solutions s’offrent à vous :

  • Vider les corbeilles de chaque utilisateur du site d’administration.
  • Exécuter les scripts flatten.php (1) et cleanup.php (2).
  • Supprimer les sessions expirées ou sessions tout court de la BDD.

1.
php bin/php/flatten.php -s SITEACCESS PARAMETRE
Supprime les informations non utilisées (anciennes versions, etc.).
Les paramètres PARAMETRE possibles sont : contentobject, contentclass, workflow, role ou all.
Exemple :
php bin/php/flatten.php -s admin contentobject

2.
php update/common/scripts/cleanup.php -s SITEACCESS PARAMETRE
Nettoie différentes données de la BDD.
Les paramètres PARAMETRE possibles sont : session, expired_session, preferences, browse, tipafriend, shop, forgotpassword, workflow, collaboration, collectedinformation, notification, searchstats ou all.
Exemple :
php update/common/scripts/cleanup.php -s admin expired_session

Tous les détails ici.


Tags : , , + Catégories : eZ Publish

3 commentaires

  1. Le vidage des sessions expirées devrait se faire en automatique. Sauf cas de pic imprevu de trafic, il y a un seul cas ou la table des sessions croit sans cesse: quand, dans php.ini, on a mis le paramètre session.gc_probability à 0 (ce qui se passe par defaut avec Debian et Ubuntu).

    Il faut faire très attention à ce cas, car on risque d’avoir à vider une table de session quand elle fait 3gb de données et un simple delete s’avère preque impossible – il faut dans ce cas utiliser TRUNCATE et delogguer tous les utilisateurs connectés.

  2. Vidage automatique : mettre l’exécution du script cleanup dans le cron je suppose.
    L’idéal serait de faire une liste des best practices sur les scripts à exécuter dans le cron, comme runcronjobs.php, cleanup ou autre.

  3. @Gaetano > Merci pour l’astuce du session.gc_probability.
    Sinon, moi je passe par un cronjobs journalier : http://dev.llaumgui.com/browser/ez_publish/myutils/trunk/cronjobs/cleanup_expired_session.php

Laisser un commentaire