我的MYSQL服务器的磁盘空间遇到问题。我剩下4%的磁盘空间(16Gb)。而且我注意到我的一张桌子没有使用,容量为100 Gb。所以我想删除/删除它。
但是,将其删除只会填满4%(因为它会创建日志,日记和其他内容)。我了解的解决方案是删除表的内容,然后运行Table Optimize释放磁盘空间。
但是,由于Table Optimize创建了100Gb的副本(而我没有它们),因此无法使用。
我了解的另一个解决方案是转储并重新上传DDB。如果可能的话,我不想这样做(停机是一个问题)。
还有其他解决方案吗?我知道你不应该管理mysql的数据文件;但是有什么办法可以在没有表优化或转储DDB的情况下删除表并释放磁盘空间?
我的innodb_file_per_table处于“打开”状态
答案 0 :(得分:0)
innodb_file_per_table = OFF
:
DELETE FROM TABLE
删除行,但在发生崩溃时将其保存,以便可以恢复它们。
TRUNCATE TABLE
将表重新创建为空。您最终得到一个空表,但是没有崩溃恢复。并且不占用磁盘空间。
DROP TABLE
删除表及其空间。您可能想要这个。
innodb_file_per_table = OFF
:
以上都不是将磁盘空间释放回操作系统,而只是释放给将来的InnoDB插入(等)。