2015-11-07 34 views
0

我有一些大的mongo數據庫,當我刪除數據釋放空間數據被刪除,但使用的空間是相同的。有沒有辦法壓縮數據?我知道與MS ACCESS類似的需求存在壓縮以減少空間。壓縮MongoDB

回答

0

找到它 - db.repairDatabase()

+0

是的,這將改寫數據庫文件,因此「壓縮爲」的領域(雖然這不是它做什麼,當然)。值得注意的是,這並不總是一件好事,尤其是如果你想要在生產中表現出色的話。 MongoDB保留這個空間,這樣它就可以再次用於新文檔,而不需要經過重新分配等所有步驟等。 – Sammaye

+0

在@Sammaye上展開:'db.repairDatabase()'不是一個可以輕易採取的操作。它需要一個**全局**鎖,有效地防止**所有**操作。此外,它需要'數據大小+ 2GB',這意味着您需要相當一些超過預配置的空間,這可以用於數據庫第一位。這可能需要一些時間,尤其是因爲它重新創建了所有的索引。如果你在生產中依靠它,你將面臨***嚴重的問題。 Imho,使用它的需要肯定是集羣設計不好的標誌。 –