【问题标题】:Freeing up space from MyISAM table after deleting data删除数据后从 MyISAM 表中释放空间
【发布时间】:2020-01-17 00:57:33
【问题描述】:

我有一个 MyISAM 表,我从中删除了 21.7GB 的行,但当然空间仍然没有释放到硬盘驱动器。我已阅读有关 OPTIMIZE TABLE 命令的信息,但不幸的是,我的服务器上只有 17GB 可用空间,我的理解是该文件在被释放之前是重复的,如果没有 22GB 可用空间,这是不可能发生的。

此表将不再使用。这个空间永远不会被自然回收,所以没有理由把它留在那里,我想回收它。它所在的数据库的其余部分仍在使用中。有没有办法真正释放空间,或者让数据库在另一个仍在使用的表中分配这个空间?

(我想我可能会更改我的代码以使用这个表而不是另一个表,从而使用这个空闲空间,但我不希望不得不求助于那个)

【问题讨论】:

  • 删除表应该删除包含表数据的文件,这应该回收空间。
  • 谢谢。表中仍有少量数据。如果我将它复制到一个新表,然后删除旧表,这会工作吗?
  • 是的,应该可以。
  • 成功了。如果您将其发布为答案,我会接受。

标签: mysql myisam


【解决方案1】:

将剩余数据复制到新表,然后删除旧表。这将回收存储空间。

【讨论】:

    猜你喜欢
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多