`
ppxieppp
  • 浏览: 51489 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

详解MongoDB的Compact操作(转)

阅读更多

转自 http://blog.nosqlfan.com/html/3282.html

在过去,我们只能通过repairDatabase()命令来对数据进行压缩,而repairDatabase()命令只能对整个DB进行压缩,新的压缩命令(compact command)可以针对单个Collection分别进行压缩,其好处是显而易见的。

  • 由于只压缩需要的Collection,所以压缩期间产生的临时文件会小很多
  • 压缩会去除Collection所在文件的碎片
  • 同样,其重建索引的代价也变小了,对内存的需求也就变小了

具体用法:

> 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本身就没有碎片存在。

这里有一个脚本,提供对Primary节点的压缩,自动完成了stepDown,压缩操作。

分享到:
评论

相关推荐

    MongoDB数据库管理

    ### MongoDB数据库管理详解 #### 一、MongoDB简介与安装部署 MongoDB是一款非常流行的开源文档型NoSQL数据库系统,以其高性能、高可用性及易扩展性受到广泛好评。它适用于处理大规模的数据集,能够轻松地存储结构...

    Mongodb回收磁盘空间方案_good_use

    ### MongoDB回收磁盘空间方案详解 #### 一、前言 MongoDB作为一种广泛使用的NoSQL数据库,因其灵活性和高性能而在众多领域中得到了广泛应用。但在实际使用过程中,可能会遇到磁盘空间管理的问题,尤其是在删除大量...

    MongoDB释放空闲空间的几种常用方法

    MongoDB的`compact`命令是对集合中的所有数据和索引进行重写和碎片整理的操作。这会重新排列数据,合并碎片,并清理空闲空间。然而,需要注意的是,`compact`命令在MMAPv1存储引擎上仅执行碎片整理和重建索引,而不...

    mongodb 集群重构和释放磁盘空间实例详解

    在WiredTiger中,可以使用`db.runCommand({compact: 'collectionName', force: true})`命令来手动压缩特定集合。 - 在生产环境中,为避免数据丢失,建议在进行此类操作前备份数据。 六、总结 MongoDB集群重构和...

    ajax许愿墙(内有数据库,配置web.config即可)

    【知识点详解】 Ajax许愿墙是一个基于Web的交互式应用,利用Ajax技术实现了用户无需刷新页面即可发送和查看愿望的功能。Ajax(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况下更新部分网页...

    Content_Providers.zip

    《Kooboo CMS数据库配置详解》 Kooboo CMS是一款强大的内容管理系统,它以其易用性、灵活性和高效性赢得了广大用户的喜爱。在Kooboo CMS的运行过程中,数据库扮演着至关重要的角色,它是存储和管理网站内容的核心。...

    [信息办公]AJAX版CD管理系统_ajaxcd.rar

    标题 "[信息办公]AJAX版CD管理系统_ajaxcd.rar" 暗示了这个压缩包包含了一个用于信息办公环境的CD(可能是Content Delivery或Compact Disc)管理系统的AJAX实现。AJAX(Asynchronous JavaScript and XML)是一种创建...

Global site tag (gtag.js) - Google Analytics