膨胀的innodb数据文件(ibdata1)以及如何回收空间?

时间:2010-01-20 08:51:54

标签: 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!如何回收数据文件中的空间?

有没有办法检查17GB的使用量是多少?

2 个答案:

答案 0 :(得分:5)

如果您未在配置中使用innodb_file_per_table,则无法从innodb数据库中回收空间:

MySQL InnoDB not releasing disk space after deleting data rows from table

答案 1 :(得分:0)

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