为了账号安全,请及时绑定邮箱和手机立即绑定

不停机下,mongodb数据库碎片如何整理?

不停机下,mongodb数据库碎片如何整理?

九州编程 2018-08-21 07:59:38
我将mongo里面大量多余的数据都删除后,发现内存和文件并没有收缩,仍然占用大量内存和硬盘,性能变化不大,请问,mongodb怎么进行碎片整理?
查看完整描述

1 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

什么版本的MongoDB,什么引擎?
3.2以上的WT引擎可以使用Compact来释放空间,之前的版本无论是WT还是MMAPv1都只能通过重新同步复制集的方式释放空间。
问题是,生产环境一般来说没有必要释放,因为早晚还会占回来,而且空闲的空间反正也还会重用,如果不是真的缺那点空间,就别去释放了。
至于是不是停机的问题,不止是这个问题,大部分时候都应该考虑复制集来解决,多个结点并行运行就是为了不停机准备的,拿掉一个下来做维护不会有多大的问题,拿主结点的时候可能会有几秒钟不可写而已。

理论上说回收磁盘空间对性能不会有任何有益的影响。但是在3.0.6和3.0.7所使用的WiredTiger引擎上发生过一个bug,在大量删除文档时BTree会有错误的平衡从而导致性能严重下降。


查看完整回答
反对 回复 2018-08-26
  • 1 回答
  • 0 关注
  • 1064 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信