可用磁盘空间innoDB Mysql

时间:2019-04-24 15:21:10

标签: mysql innodb

我的MYSQL服务器的磁盘空间遇到问题。我剩下4%的磁盘空间(16Gb)。而且我注意到我的一张桌子没有使用,容量为100 Gb。所以我想删除/删除它。

但是,将其删除只会填满4%(因为它会创建日志,日记和其他内容)。我了解的解决方案是删除表的内容,然后运行Table Optimize释放磁盘空间。

但是,由于Table Optimize创建了100Gb的副本(而我没有它们),因此无法使用。

我了解的另一个解决方案是转储并重新上传DDB。如果可能的话,我不想这样做(停机是一个问题)。

还有其他解决方案吗?我知道你不应该管理mysql的数据文件;但是有什么办法可以在没有表优化或转储DDB的情况下删除表并释放磁盘空间?

我的innodb_file_per_table处于“打开”状态

1 个答案:

答案 0 :(得分:0)

innodb_file_per_table = OFF

DELETE FROM TABLE删除行,但在发生崩溃时将其保存,以便可以恢复它们。

TRUNCATE TABLE将表重新创建为空。您最终得到一个空表,但是没有崩溃恢复。并且不占用磁盘空间。

DROP TABLE删除表及其空间。您可能想要这个。

innodb_file_per_table = OFF

以上都不是将磁盘空间释放回操作系统,而只是释放给将来的InnoDB插入(等)。