Rozmiar pliku przestrzeni tabel InnoDB nigdy nie zmniejszy się automatycznie, bez względu na to, ile danych usuniesz.
To, co możesz zrobić, chociaż jest to bardzo pracochłonne, to stworzyć jedną przestrzeń dla każdego stołu poprzez ustawienie
innodb_file_per_table
Długa część tego jest taka, że musisz wyeksportować WSZYSTKIE DANE z serwera mysql (ustawienie nowego serwera byłoby łatwiejsze), a następnie ponownie zaimportować dane. Zamiast jednego pliku ibdata1, który przechowuje dane dla każdej tabeli, znajdziesz wiele plików o nazwie tablename.ibd
które przechowują dane tylko dla jednej tabeli.
Następnie:
Kiedy następnie usuniesz dużo danych z tabel, możesz pozwolić mysql odtworzyć plik danych, wydając
alter table <tablename> engine=myisam;
aby przejść do MyIsam (i usunąć plik danych InnoDB dla tej tabeli), a następnie
alter table <tablename> engine=innodb;
aby odtworzyć tabelę.