Mysql
 sql >> Base de données >  >> RDS >> Mysql

Le fichier de données MySQL ne rétrécira pas

La taille de fichier des tablespaces InnoDB ne sera jamais réduite automatiquement, quelle que soit la quantité de données que vous supprimez.

Ce que vous pourriez faire, même si cela demande beaucoup d'efforts, est de créer un tablespace pour chaque table en définissant

innodb_file_per_table

La partie longue à ce sujet est que vous devez exporter TOUTES LES DONNÉES du serveur mysql (la configuration d'un nouveau serveur serait plus facile), puis réimporter les données. Au lieu d'un seul fichier ibdata1 qui contient les données de chaque table, vous trouverez de nombreux fichiers appelés tablename.ibd qui ne contiennent les données que d'une seule table.

Ensuite :

Lorsque vous supprimez ensuite beaucoup de données des tables, vous pouvez laisser mysql recréer le fichier de données en émettant

alter table <tablename> engine=myisam;

pour basculer vers MyIsam (et faire supprimer le fichier de données InnoDB de cette table) puis

alter table <tablename> engine=innodb;

pour recréer la table.