【发布时间】:2012-12-06 20:19:32
【问题描述】:
我查看了 ibdata 文件,它是 128 GB。我取出每个表的大小,一个表有 500 万条记录,显示为 90 GB。
我截断了该表,因为它不是必需的,并且我查看了 ibdata1 大小。它仍然显示 128 GB。然后我取出每个表的大小,然后总和只有 35-38 GB。
如何取回我的 Db 服务器上的 90 GB 空间。我在 red-hat Linux 服务器上使用 mysql 和 php。
我猜-如果我们删除数据库上的任何内容,它只会删除复制,但分配给它的空间在我们手动执行之前不会被释放。是这样吗?
【问题讨论】:
-
stackoverflow.com/questions/3456159/… 的可能副本。一言以蔽之:你不能。转储所有数据库,停止服务器,删除 ibdata 文件,重新启动,重新导入转储。
-
下次使用
innodb_file_per_table选项。删除大表将允许您回收空间。 -
强烈推荐访问@YaK 提供的链接。绝对是重复的,并且他/她链接到的帖子有分步说明。