首页 > 解决方案 > 空闲磁盘空间 innoDB Mysql

问题描述

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

但是,删除它只会填满 4%(因为它会创建日志和日志等)。我的理解是解决方案是删除表的内容并运行表优化以释放磁盘空间。

但是,这不起作用,因为 Table Optimize 创建了 100Gb 的副本(我没有它们)。

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

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

我的 innodb_file_per_table 处于“开启”状态

标签: mysqlinnodb

解决方案


innodb_file_per_table = OFF

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

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

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

innodb_file_per_table = OFF

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


推荐阅读