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.