mysql删除的数据如何清理磁盘占用?
1. 服务器环境,磁盘大小1T,mysql版本5.7。存储了几千万数据,大概占用磁盘800G。
2. 问题描述?
某一天接到了需求一部分数据不需要了,需要删除一部分数据,我使用delete语句删除了一半数据
DELETE FROM `table` WHERE ***
删除之后发现磁盘占用还是800G左右,基本没什么变化,不应该是400G吗
各种查找之后,释放磁盘占用都是用OPTIMIZE TABLE
执行OPTIMIZE TABLE会报错,磁盘空间不足,总共1T的大小,占用800G,剩下的200G不够执行OPTIMIZE TABLE命令
3. 您期望得到的结果?
扩充磁盘不太方便
数据太大,备份到本地需要时间太久,也总是各种报错不成功
想问下各位大佬,在不扩充磁盘和备份数据到本地的情况下,还有没有其他方法能释放删除数据的磁盘占用?
补充
有兄弟评论执行ALTER TABLE table_name ENGINE=INNODB;重建表可以释放空间
我试了一下执行这个也是需要空间的,和OPTIMIZE TABLE一样,剩余的200G是不够用的,都是如下报错
ERROR 1114 (HY000): The table 'table_name' is full
希望有经验的兄弟分享一下
推荐文章: