Ukuran file tablespace InnoDB tidak akan pernah berkurang secara otomatis, tidak peduli berapa banyak data yang Anda hapus.
Apa yang dapat Anda lakukan, meskipun membutuhkan banyak usaha, adalah membuat satu tablespace untuk setiap tabel dengan menyetel
innodb_file_per_table
Bagian panjang tentang ini adalah, bahwa Anda perlu mengekspor SEMUA DATA dari server mysql (menyiapkan server baru akan lebih mudah) dan kemudian mengimpor ulang data. Alih-alih satu file ibdata1 tunggal yang menyimpan data untuk setiap tabel, Anda akan menemukan banyak file bernama tablename.ibd
yang menyimpan data hanya untuk satu tabel.
Setelah itu:
Ketika Anda kemudian menghapus banyak data dari tabel, Anda dapat membiarkan mysql membuat ulang file data dengan mengeluarkan
alter table <tablename> engine=myisam;
untuk beralih ke MyIsam (dan menghapus file data InnoDB untuk tabel ini) dan kemudian
alter table <tablename> engine=innodb;
untuk membuat ulang tabel.