首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除数据后,可以使用哪些工具来释放MySQL数据库中已分配的空间?

删除数据后,可以使用哪些工具来释放MySQL数据库中已分配的空间?
EN

Stack Overflow用户
提问于 2016-12-28 13:33:52
回答 1查看 94关注 0票数 0

我使用的是MySQL服务器-5.1.58社区日志。问题是删除数据后,分配给MySQL数据库的空间无法释放,导致我正在使用的数据库的备份空间一天比一天大。

请让我知道任何工具,可以解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2016-12-28 14:48:58

请记住,在OPTIMIZE table运行期间,MySQL会锁定表

对于官方文档中的MySQL版本:

如果删除了表的大部分,或者对具有可变长度行的表(具有VARCHAR、VARBINARY、BLOB或TEXT列的表)进行了多次更改,则应该使用

OPTIMIZE TABLE。删除的行将保留在链表中,后续的插入操作将重用旧的行位置。可以使用OPTIMIZE TABLE回收未使用的空间并对数据文件进行碎片整理

InnoDB的其他说明:

对于InnoDB表,OPTIMIZE TABLE映射到ALTER TABLE,这将重新构建表以更新索引统计信息并释放聚集索引中未使用的空间。从MySQL 5.1.27开始,当您在InnoDB表上运行优化表时,它会显示在优化表的输出中,如下所示:

mysql>优化表foo;表不支持优化,改为重新创建+分析

所以:

代码语言:javascript
复制
OPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE
    tbl_name [, tbl_name] ...

默认情况下,优化器TABLE语句被写入二进制日志,以便将它们复制到复制从服务器。可以使用可选的NO_WRITE_TO_BINLOG关键字或其别名LOCAL。

来禁止日志记录

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41355929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档