MongoDB 2.0 正式版已经发布了,2.0中的一点改进是提供了一个压缩命令Compact,此命令支持针对单个Collection的压缩。由于只压缩需要的Collection,所以压缩期间产生的临时文件会小很多压缩会去除Collection所在文件的碎片
同样,其重建索引的代价也变小了,对内存的需求也就变小了
求大神详细介绍一下Compact的操作。
具体用法:> 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本身就没有碎片存在。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。