Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 删除数据后从MyISAM表释放空间_Mysql_Myisam - Fatal编程技术网

Mysql 删除数据后从MyISAM表释放空间

Mysql 删除数据后从MyISAM表释放空间,mysql,myisam,Mysql,Myisam,我有一个MyISAM表,我从中删除了21.7GB的行,但当然空间仍然没有释放到硬盘驱动器。我读过关于OPTIMIZE TABLE命令的内容,但不幸的是,我的服务器上只有17GB可用空间,我的理解是,文件在释放之前是重复的,如果没有22GB可用空间,这是不可能发生的 这张桌子不再使用了。这个空间永远不会被自然回收,所以没有理由让它留在那里,我想回收它。它所在的数据库的其余部分仍在使用中。有没有办法真正释放空间,或者让DB在另一个仍在使用的表中分配空间 (我想可能会将代码更改为使用此表而不是另一个表

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

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


(我想可能会将代码更改为使用此表而不是另一个表,从而使用此可用空间,但我不希望必须使用该表)

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

删除表将删除包含表数据的文件,这将回收空间。谢谢。表中仍有少量数据。如果我把它复制到一个新表,然后删除旧表,这行吗?是的,应该行。行了。如果你把它作为一个答案,我会接受。