El tamaño del archivo de los espacios de tablas de InnoDB nunca se reducirá automáticamente, sin importar cuántos datos elimine.
Lo que podría hacer, aunque es mucho esfuerzo, es crear un espacio de tabla para cada tabla configurando
innodb_file_per_table
La parte larga de esto es que necesita exportar TODOS LOS DATOS del servidor mysql (sería más fácil configurar un nuevo servidor) y luego volver a importar los datos. En lugar de un solo archivo ibdata1 que contiene los datos de todas y cada una de las tablas, encontrará muchos archivos llamados tablename.ibd
que contienen los datos solo para una sola tabla.
Después:
Cuando elimine una gran cantidad de datos de las tablas, puede dejar que mysql vuelva a crear el archivo de datos emitiendo
alter table <tablename> engine=myisam;
para cambiar a MyIsam (y eliminar el archivo de datos InnoDB para esta tabla) y luego
alter table <tablename> engine=innodb;
para recrear la tabla.