Solution: How to shrink or reduce the site of eZ Publish database backup dump files

Question

I have a small site like a blog with only a few hundred entries. My mysql database backup dump files have grown in size upwards to over 1,000 MB! How can I reduce the size or amount of data stored in the eZ Publish Database?

Answers

Sadly the size is quite common. We have seen much larger sizes in the GB of exports of active clean eZ Publish installation databases. Suggest reading up on the flatten.php an cleanup.php php cli shell scripts as these should help you reduce some database size.

Suggested steps

- Empty the trash for all users

- Run flatten.php and cleanup.php scripts

- Remove session information from database

eZ Publish will store session information in the database and you may need to enable the php configuration setting, 'session.gc_probability' to purge the expired sessions.

PHP Sessions

Confirm these values in php.ini

session.gc_probability = 1
session.gc_divisor = 100

eZ Publish Sessions

If you dump your database and review the file size and then review the contents you would find that the ezsession table often contains large amounts of session rows.

Mysql

You can quickly truncate the ezsession table using sql thus freeing the table of records.

mysql > truncate table ezsession;
PHP

Or you may use the eZ Publish PHP CLI API (cleanup script) to free sessions in eZ Publish.

php update/common/scripts/cleanup.php session;
php update/common/scripts/cleanup.php expired_session;

Reference