删除数据后从 MyISAM table 释放 space

Freeing up space from MyISAM table after deleting data

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

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

(我想可能会更改我的代码以使用此 table 而不是另一个,从而使用此免费 space,但我宁愿不必诉诸于此)

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