De bestandsgrootte van InnoDB-tabelruimten wordt nooit automatisch kleiner, hoeveel gegevens u ook verwijdert.
Wat je zou kunnen doen, hoewel het veel moeite kost, is om voor elke tafel één tablespace te creëren door
innodb_file_per_table
Het lange deel hiervan is dat je ALLE DATA van de mysql-server moet exporteren (het opzetten van een nieuwe server zou gemakkelijker zijn) en vervolgens de gegevens opnieuw moet importeren. In plaats van één enkel ibdata1-bestand dat de gegevens voor elke tabel bevat, vindt u veel bestanden met de naam tablename.ibd
die de gegevens slechts voor één enkele tabel bevatten.
Daarna:
Wanneer u vervolgens veel gegevens uit tabellen verwijdert, kunt u mysql het gegevensbestand opnieuw laten maken door
alter table <tablename> engine=myisam;
om over te schakelen naar MyIsam (en het InnoDB-gegevensbestand voor deze tabel te laten verwijderen) en dan
alter table <tablename> engine=innodb;
om de tafel opnieuw te maken.