2014-10-12 145 views
0

我對MongoDB repairDatabase和compact命令都很熟悉,但這些都似乎鎖定了數據庫和/或集合。有沒有另一種方式來回收刪除的磁盤空間,而不必關閉數據庫?這方面的最佳做法是什麼?謝謝!MongoDB磁盤空間回收

回答

2

最好的做法可能取決於你的架構和你的應用程序一樣。這是我的使用案例,也許你可以學到一些東西......我的應用程序正在存儲大量帶時間標記的數據樣本。從非常大的商店刪除數據是一項非常昂貴的操作,當您在實時系統上嘗試這樣做時,這會變得更加複雜。 MongoDB在過去有幾個問題,將磁盤空間回收到操作系統,我們不得不圍繞這一點跳舞,不確定它現在有多好。但是我們確實解決了所有問題 - 我們以這種方式分割數據,以便通過簡單地轉儲整個數據庫來處理舊數據。丟棄mongodb數據庫是一項非常便宜和高效的操作,即使在丟失結核病時也幾乎是即時的。請注意,刪除集合不如刪除數據庫有效,這實際上是解決方案的關鍵。爲此,我們必須重新設計架構..您的案例當然可能會有所不同,但從中學到的教訓是從大容量存儲中刪除數據非常昂貴。