阿里云RDS 数据库空间快满了,实际数据文件没有使用这么多
一剂而愈 alter table A engine=InnoDB
以上过程执行会锁表,请错峰执行。
原因就是在于mysql在删除表数据后,并不会把删除的这部分数据空间释放,而是将这部分空间数据标记为“删除状态”。
至于为什么这么做的原因应该主要是基于下面两点来考虑的。
1、释放这些空间的操作本身就需要时间,如果每次删除数据都去进行这个操作,显然会影响性。
2、第二个原因则是因为表里后续还是会有新的数据插入,这些删除的数据空间可以在新的数据插入进来后重新利用即可,这样也避免了新增数据要去重新申请新的空间。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。