我使用的是MySQL服务器-5.1.58社区日志。问题是删除数据后,分配给MySQL数据库的空间无法释放,导致我正在使用的数据库的备份空间一天比一天大。
请让我知道任何工具,可以解决这个问题。
发布于 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;表不支持优化,改为重新创建+分析
所以:
OPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE
tbl_name [, tbl_name] ...默认情况下,优化器TABLE语句被写入二进制日志,以便将它们复制到复制从服务器。可以使用可选的NO_WRITE_TO_BINLOG关键字或其别名LOCAL。
来禁止日志记录
https://stackoverflow.com/questions/41355929
复制相似问题