【发布时间】:2020-01-17 00:57:33
【问题描述】:
我有一个 MyISAM 表,我从中删除了 21.7GB 的行,但当然空间仍然没有释放到硬盘驱动器。我已阅读有关 OPTIMIZE TABLE 命令的信息,但不幸的是,我的服务器上只有 17GB 可用空间,我的理解是该文件在被释放之前是重复的,如果没有 22GB 可用空间,这是不可能发生的。
此表将不再使用。这个空间永远不会被自然回收,所以没有理由把它留在那里,我想回收它。它所在的数据库的其余部分仍在使用中。有没有办法真正释放空间,或者让数据库在另一个仍在使用的表中分配这个空间?
(我想我可能会更改我的代码以使用这个表而不是另一个表,从而使用这个空闲空间,但我不希望不得不求助于那个)
【问题讨论】:
-
删除表应该删除包含表数据的文件,这应该回收空间。
-
谢谢。表中仍有少量数据。如果我将它复制到一个新表,然后删除旧表,这会工作吗?
-
是的,应该可以。
-
成功了。如果您将其发布为答案,我会接受。