我正面临MYSQL服务器的磁盘空间问题。我剩下4%的磁盘空间(16 got )。我注意到我的一张桌子没有使用过,容量为100 Gb。所以我想删除/删除它。
然而,删除它只占了4% (因为它会创建日志和日志之类的东西)。我所理解的是,解决方案是删除表的内容并运行table Optimize来释放磁盘空间。
然而,这不会起作用,因为表优化创建了一个100 of的副本(我没有它们)。
我读到的另一个解决方案是转储并重新上传DDB。如果可能的话,我不想这样做(停机是一个问题)。
有没有其他的解决方案?我知道你不应该对mysql的数据文件进行rm操作;但是,有没有办法在不使用表优化或转储DDB的情况下删除一个表并释放磁盘空间呢?
我的innodb_file_per_table开着“开”
发布于 2019-05-17 06:36:20
innodb_file_per_table = OFF
DELETE FROM TABLE
会删除这些行,但会在发生崩溃时保存它们,以便可以恢复它们。
TRUNCATE TABLE
将该表重新创建为空。你最终得到了一个空的表,但没有崩溃恢复。并且不会消耗磁盘空间。
DROP TABLE
将删除该表及其空间。你可能想要这个。
innodb_file_per_table = OFF
上述操作都不会将磁盘空间释放回操作系统,只会释放给将来的InnoDB插入(等)。
https://stackoverflow.com/questions/55833529
复制相似问题