Mysql删除表数据后data目录大小不变的问题

前段时间在做复制测试环境的mysql数据到本地的事情,由于待迁移的数据中有很大一部分是无关数据,本地开发环境不需要,可以直接将其删除掉,然而直接使用delte语句操作后,发现mysql的data目录大小并没有减小。本文简单记录下解决方案。

在网上搜索了一番后,找到了问题的根本原因是delte操作后,mysql并不会将数据直接删除,而是等待新数据来占位,另外貌似还有恢复数据的可能。具体原因可能是删除太耗时或者为了恢复数据吧,没有深究,感兴趣的可以看下这篇文章。如果要强制mysql删除数据,需要使用optimize table的命令,该命令执行期间会锁表,所以一般线上环境不会使用。

不过由于我的需求是直接删除一个表的所有数据,后来找到truncate table命令,直接清空表数据,不能恢复。 That's what I want!

标签: mysql

添加新评论