mongodb compact 理解

本文详细介绍了MongoDB的compact命令,包括为何需要compact,remove与drop的区别,以及compact对集合的影响。compact操作会导致集合读写阻塞,并在WiredTiger存储引擎下回收磁盘空间。执行条件是磁盘剩余空间能容纳当前数据的20%。
摘要由CSDN通过智能技术生成

MongoDB compact 命令详解

为什么需要 compact

compact命令详解

remove和drop的区别

mongodb删除集合有两种方式:

  1. db.connection,remove({});该命令是将集合中的文档按一定条件在btree中逐个删除,但物理空间不会被删除,导致一种删了跟没删一样的错觉;
  2. db.connection.remove({});该命令和上命令的想法一样,但直接删除的是集合里的物理文件,空间会立即回收并释放,remove操作相当于只是把记录删除,而记录所占用的物理空间却没有变动,当有新数据插入时,会优先插入到指定的位置,总大小不变,直到之前remove腾出的空位被占满才会占用新的空间去存放,像经常更新记录的表使用remove操作即可;对于频繁插入而忘记删除的集合,当需要空间去干其他的事情时,就需用到compact操作回收磁盘空间了;

compact对集合的影响

由于本人使用mongodb的时间不长,目前公司的mongodb为主备节点的版本,当在主节点执行
db.connection.runCommand(“compact”);时,会提示“will not run compact on an active replica set primary as this

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值