mysql - 空闲磁盘空间 innoDB Mysql
问题描述
我的 MYSQL 服务器的磁盘空间存在问题。我还剩下 4% 的磁盘空间(16Gb)。而且我注意到我的一张桌子没有使用,并且带有 100 Gb。所以我想删除/删除它。
但是,删除它只会填满 4%(因为它会创建日志和日志等)。我的理解是解决方案是删除表的内容并运行表优化以释放磁盘空间。
但是,这不起作用,因为 Table Optimize 创建了 100Gb 的副本(我没有它们)。
我读到的另一个解决方案是转储并重新上传 DDB。如果可能的话,我不想这样做(停机时间是一个问题)。
还有其他解决方案吗?我知道你不应该 rm mysql 的数据文件;但是有没有办法在没有表优化或转储 DDB 的情况下删除表并释放磁盘空间?
我的 innodb_file_per_table 处于“开启”状态
解决方案
innodb_file_per_table = OFF
:
DELETE FROM TABLE
删除行,但在发生崩溃时保存它们,以便可以恢复它们。
TRUNCATE TABLE
将表重新创建为空。您最终得到一个空表,但没有崩溃恢复。并且不消耗磁盘空间。
DROP TABLE
删除表及其空间。你可能想要这个。
innodb_file_per_table = OFF
:
以上都没有将磁盘空间释放回操作系统,只释放给未来的 InnoDB 插入(等)。
推荐阅读
- java - AWS DynamoDb 无法取消转换嵌套地图的属性错误
- python-3.x - 如何在 Python 中使用 PyQt 显示 RGB 图像?
- python - 二维数组减去一维数组
- sql - 更新 SQL Server 中分隔符之间包含的字符串的一部分
- python - 如何使用 For 循环在字典内的列表中获取某个值?
- html - 图像在容器内不合适,图像切换没有响应(响应性)
- angular - 两次订阅相同的方法但使用不同的参数是如何工作的?
- c++ - 如何遍历位图像素
- apache-spark - 如果 emr 上的 spark 中不存在存储桶,如何防止创建存储桶
- mysql - InnoDB:错误意味着另一个程序正在使用 InnoDB 的文件。在 MYSQL 错误日志中获取操作系统错误 32