削除するデータの量に関係なく、InnoDBテーブルスペースのファイルサイズが自動的に減少することはありません。
大変な作業ですが、設定してテーブルごとに1つのテーブルスペースを作成することができます
innodb_file_per_table
これに関する長い部分は、mysqlサーバーからすべてのデータをエクスポートして(新しいサーバーをセットアップする方が簡単です)、データを再インポートする必要があるということです。すべてのテーブルのデータを保持する単一のibdata1ファイルの代わりに、tablename.ibd
と呼ばれる多くのファイルがあります。 1つのテーブルのデータのみを保持します。
その後:
その後、テーブルから大量のデータを削除する場合、発行することでmysqlにデータファイルを再作成させることができます
alter table <tablename> engine=myisam;
MyIsamに切り替えて(このテーブルのInnoDBデータファイルを削除して)、
alter table <tablename> engine=innodb;
テーブルを再作成します。