首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TokuDB优化表不回收磁盘空间

TokuDB优化表不回收磁盘空间
EN

Database Administration用户
提问于 2013-08-15 15:12:26
回答 2查看 2.4K关注 0票数 6

在我的一个大小约为11G的表上运行一个optimize table命令时,在优化过程完成后,使用的磁盘空间立即增加了2 2Gig。我希望优化能恢复一个空间。

发生什么事了呢?

优化完成后,24台核心机的MySQL CPU利用率是以前的2-3倍,负载平均为18-20倍。CPU和负载平均值在几个小时后略有下降,但仍高于往常。有类似的经历吗?谢谢。

EN

回答 2

Database Administration用户

发布于 2014-01-11 17:56:53

我也有过同样的经历。解决方案是通过以下命令重新构建表:

代码语言:javascript
复制
ALTER TABLE my_table ENGINE=TokuDB ROW_FORMAT=TOKUDB_SMALL;

用您最喜欢的压缩算法替换TOKUDB_SMALL

使用InnoDB,一个OPTIMIZE TABLE命令只做一个简单的ALTER。但是在TokuDB中没有,表空间也没有被回收。通过使用ALTER强制使用ENGINE=TOKUDB,您将把它置于TokuDB的控制之外,让MySQL服务器告诉TokuDB创建一个(真正的)新表。

票数 3
EN

Database Administration用户

发布于 2013-09-13 11:54:56

TokuDB的优化行为是对给定表的所有分形树索引中的所有节点进行脏化,这可能会导致文件系统中的文件大小增加,因为我们将保留旧版本的节点,直到下一个检查点完成。这取决于节点被污染/写入磁盘的速度以及检查点完成所需的时间。如果发生这种情况,第二个优化表命令通常会使您回到原来的(或更小的)大小。

我建议对优化表进行跟踪的一个操作是,如果您决定更改压缩,因为它允许将所有节点快速重写为新的压缩格式。

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

https://dba.stackexchange.com/questions/48190

复制
相关文章

相似问题

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