J'ai un SGBD MariaDB. Deux bases de données : Wordpress et Tiny-Tiny RSS. /var/lib/mysql occupe 4,6 Go. Les sauvegardes de ces bases par mysqldump occupent moins de 100 Mo. Facteur 47. :O
La raison est évidente : les SGBD ne libèrent pas réellement, sur le stockage, l'espace occupé par des données supprimées. Or, mes bases ont quinze ans (!), j'ai eu jusqu'à trois ans de RSS dans une base, et mon Wordpress recevait plusieurs centaines de commentaires indésirables par semaine, ce qui a fait grossir mes bases de données.
Avec SQLite ou PostgreSQL, un VACUUM libère l'espace. Avec MariaDB, il faut un OPTIMIZE TABLE sur chaque table, et je n'ai pas obtenu de gain. Aucune idée de la raison. J'attribue ça à un paramètre obsolète dans la configuration.
Sur le web, ça dit de détruire /var/lib/mysql. C'est ce que j'ai fait. Après avoir stoppé MariaDB et m'être assuré d'avoir des sauvegardes, au format archive du système de fichiers et au format extraction des bases au format SQL. J'ai également réinstallé MariaDB afin de tout remettre à plat, d'avoir les paramètres au goût du jour et d'avoir, sans effort, la connexion au SGBD sans mot de passe depuis l'utilisateur système root.
Plus précisément :
Mettre mon blog en maintenance dans la config Apache httpd (« Require all denied »)
systemctl stop mariadb.service
mv /var/lib/mysql /var/lib/mysql.BAK
mkdir /var/lib/mysql
chown mysql:mysql /var/lib/mysql
chmod 700 /var/lib/mysql
apt install --reinstall mariadb-server
systemctl status mariadb.service
mysql # recréer les utilisateurs
mysql -u <utilisateur> -p <base> < /chemin/vers/sauvegarde.sql
Résultat : /var/lib/mysql occupe 648 Mo. 672 Mo deux mois plus tard. Soit un gain d'environ 4 Go d'espace de stockage.
Avant cette manipulation, tout mon système occupait 21 Go sur les 40 Go dont dispose ma machine virtuelle. Stable depuis des années.
Du coup, je loue désormais une machine virtuelle dotée de 20 Go d'espace de stockage (au lieu de 40 Go). 2,76 € TTC d'économie par mois. J'ose même pas imaginer le gain d'une telle opération chez les grands fournisseurs ricains d'hébergement qui facturent au temps passé. :O