开发者社区> 问答> 正文

MongoDB 的 Compact 操作

MongoDB 2.0 正式版已经发布了,2.0中的一点改进是提供了一个压缩命令Compact,此命令支持针对单个Collection的压缩。由于只压缩需要的Collection,所以压缩期间产生的临时文件会小很多压缩会去除Collection所在文件的碎片
同样,其重建索引的代价也变小了,对内存的需求也就变小了
求大神详细介绍一下Compact的操作。

展开
收起
落地花开啦 2016-02-18 17:37:35 2937 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    具体用法:
    > db.yourCollection.runCommand("compact");
    > db.runCommand({ compact : 'yourCollection' });
    对于compact命令,有两点需要注意:
    Compact操作进行中,会blocks掉所有在当前Collection上的操作,所以Compact操作最好在业务低估的时候进行。
    你可以在一个Replica Sets的secondary上进行数据压缩,不过在压缩过程中,这个节点会变成不能服务的recovery模式。
    运行Compact操作后,当前Collection的Padding Factor会变成1,后续如果有使数据变长的更新操作,可能会在一段时间内比较慢。
    Capped Collection是不能进行Compact操作的,原因嘛,因为Capped Collection本身就没有碎片存在。

    2019-07-17 18:44:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
MongoDB多数据中心的方案选型之路 立即下载
阿里云MongoDB云服务构建 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载