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

我将mongo里面大量多余的数据都删除后,发现内存和文件并没有收缩,仍然占用大量内存和硬盘,性能变化不大,请问,mongodb怎么进行碎片整理?

九州编程
浏览 1032回答 1
1回答

炎炎设计

什么版本的MongoDB,什么引擎?3.2以上的WT引擎可以使用Compact来释放空间,之前的版本无论是WT还是MMAPv1都只能通过重新同步复制集的方式释放空间。问题是,生产环境一般来说没有必要释放,因为早晚还会占回来,而且空闲的空间反正也还会重用,如果不是真的缺那点空间,就别去释放了。至于是不是停机的问题,不止是这个问题,大部分时候都应该考虑复制集来解决,多个结点并行运行就是为了不停机准备的,拿掉一个下来做维护不会有多大的问题,拿主结点的时候可能会有几秒钟不可写而已。理论上说回收磁盘空间对性能不会有任何有益的影响。但是在3.0.6和3.0.7所使用的WiredTiger引擎上发生过一个bug,在大量删除文档时BTree会有错误的平衡从而导致性能严重下降。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB