suchen

Heim  >  Fragen und Antworten  >  Hauptteil

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

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

習慣沉默習慣沉默2789 Tage vor762

Antworte allen(1)Ich werde antworten

  • PHP中文网

    PHP中文网2017-05-02 09:24:51

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

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

    Antwort
    0
  • StornierenAntwort