2012-07-12 53 views
3

我在一個mongo集合中有很多更新,並在此之後承擔文件系統上的巨大碎片。我主要擔心的是收藏會在文件系統上不斷增長,而無法在收藏中增加寶貴的數據。mongo集合中的數據碎片

能否請您確認或反駁我的關注?

+0

您是否嘗試過修復它並測量文件大小更改? – 2012-07-12 07:42:33

+0

是的,並沒有得到有價值的差異。但對我而言更有意義的理論可能性。 – Raman 2012-07-12 08:33:48

+0

我建議閱讀此鏈接aslo - http://dba.stackexchange.com/questions/17174/mongo-collection-size-is-larger-than-storagesize/18249#18249。它應該有助於你的理解。 – 2012-07-12 09:14:21

回答

5

這取決於你正在做什麼樣的更新。如果這些更新增加你的文檔(數組推送或類似),那麼是的,你會有一些碎片。就地更新($ inc)不會導致文檔被移動(無碎片)。

順便說一句,這不是碎片化本身,而是一些浪費的空間。也就是說,如果文檔被移動到新的位置,其舊位置將不會被重用。

+0

我面臨同樣的問題。沒有辦法讓系統重用舊數據的位置。儘管如此,我無法將數據庫脫機。基本上像修復命令,但由文檔和在線文檔.. – 2012-09-10 01:01:42

+0

您可以使用副本集。讓一個奴隸離線,整理碎片,重新上線,等待它同步,讓它成爲一個新的主人,重複。 – 2012-09-10 05:19:01

+0

謝謝。這可能是目前最好的方法 - 直到10gen實現自動碎片整理(有點像NTFS)。 – 2012-09-10 18:33:51