Filstorleken på InnoDB-tabellutrymmen kommer aldrig att minska automatiskt, oavsett hur mycket data du tar bort.
Vad du kan göra, även om det är mycket ansträngning, är att skapa en tabellyta för varje tabell genom att ställa in
innodb_file_per_table
Den långa delen av detta är att du måste exportera ALL DATA från mysql-servern (att sätta upp en ny server skulle vara lättare) och sedan återimportera data. Istället för en enda ibdata1-fil som innehåller data för varje tabell, hittar du många filer som heter tablename.ibd
som endast innehåller data för en enda tabell.
Efteråt:
När du sedan raderar mycket data från tabeller kan du låta mysql återskapa datafilen genom att utfärda
alter table <tablename> engine=myisam;
för att byta till MyIsam (och få InnoDB-datafilen för denna tabell raderad) och sedan
alter table <tablename> engine=innodb;
för att återskapa tabellen.