我將mongo里面大量多余的數(shù)據(jù)都刪除后,發(fā)現(xiàn)內(nèi)存和文件并沒有收縮,仍然占用大量內(nèi)存和硬盤,性能變化不大,請問,mongodb怎么進(jìn)行碎片整理?
1 回答

炎炎設(shè)計
TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個贊
什么版本的MongoDB,什么引擎?
3.2以上的WT引擎可以使用Compact來釋放空間,之前的版本無論是WT還是MMAPv1都只能通過重新同步復(fù)制集的方式釋放空間。
問題是,生產(chǎn)環(huán)境一般來說沒有必要釋放,因?yàn)樵缤磉€會占回來,而且空閑的空間反正也還會重用,如果不是真的缺那點(diǎn)空間,就別去釋放了。
至于是不是停機(jī)的問題,不止是這個問題,大部分時候都應(yīng)該考慮復(fù)制集來解決,多個結(jié)點(diǎn)并行運(yùn)行就是為了不停機(jī)準(zhǔn)備的,拿掉一個下來做維護(hù)不會有多大的問題,拿主結(jié)點(diǎn)的時候可能會有幾秒鐘不可寫而已。
理論上說回收磁盤空間對性能不會有任何有益的影響。但是在3.0.6和3.0.7所使用的WiredTiger引擎上發(fā)生過一個bug,在大量刪除文檔時BTree會有錯誤的平衡從而導(dǎo)致性能嚴(yán)重下降。
- 1 回答
- 0 關(guān)注
- 1115 瀏覽
添加回答
舉報
0/150
提交
取消