Mysql 臃肿的innodb数据文件(IBMata1)以及如何回收空间?

Mysql 臃肿的innodb数据文件(IBMata1)以及如何回收空间?,mysql,innodb,Mysql,Innodb,我的表中有大约12GB的数据,我的数据文件ibdata1的大小过去约为12GB。然后我运行以下命令 alter table `rails_production`.`pictures` change `data` `image_file_data` mediumblob NULL 当它临时复制表时,我得到了以下错误 ERROR 1114 (HY000): The table '#sql-7fe4_12c9' is full 我想这意味着没有足够的空间来临时复制表。但是现在数据文件是17GB!如

我的表中有大约12GB的数据,我的数据文件ibdata1的大小过去约为12GB。然后我运行以下命令

alter table `rails_production`.`pictures` change `data` `image_file_data` mediumblob NULL
当它临时复制表时,我得到了以下错误

ERROR 1114 (HY000): The table '#sql-7fe4_12c9' is full
我想这意味着没有足够的空间来临时复制表。但是现在数据文件是17GB!如何回收数据文件中的空间


是否有办法检查17GB的使用量?

很遗憾,如果配置中未使用innodb_file_per_表,则无法从innodb数据库回收空间:

即使不使用innodb_file_per_表,也可以通过转储数据库并将其加载回来重新声明空间。 不过,这可能会导致一些停机时间