2016-07-23 23 views
0

正如MMAPv1 Document不WiredTiger具有再分配的性能問題,因爲MMAPv1

所有記錄連續位於磁盤上,並且當文檔變得比分配記錄時,MongoDB中必須分配一個新的記錄。新的分配需要MongoDB移動文檔並更新引用文檔的所有索引,這需要比就地更新更多的時間並導致存儲碎片化。 版本3.0.0更改。
默認情況下,MongoDB使用Power of 2 Sized Allocations,以便MongoDB中的每個文檔都存儲在包含文檔本身和額外空間或填充的記錄中。填充允許文檔隨更新而增長,同時最大限度地減少重新分配的可能性。

但是WiredTiger Document對此沒有提及。所以我只想知道當記錄大小發生變化時它是否非常好,或者它有一些性能問題,但在文檔中沒有提及。

回答

3

您不必擔心WiredTiger的文檔移動,填充等問題。新寫入最初會寫入未使用區域中的文件,然後在後臺與後臺的其餘數據合併。 在更新過程中,WiredTiger實際上會編寫新版本的文檔,而不是像mmapv1在許多情況下那樣覆蓋現有數據。 (從MongodDB免費在線課程檢查the video

+1

我看過視頻,並知道WiredTiger使用B-Tree存儲數據不僅索引爲MMAPv1。所以它沒有填充或文檔移動。非常感謝。 – Naryc