2013-08-27 65 views
1

我使用小文件選項運行mongod。最初,它創建三個文件MongoDb在數據大小超過最初分配的文件大小之前創建其他數據文件

  1. .ns --- 16 MB
  2. 0.0 --- 16 MB
  3. 0.1 --- 32個MB

這些文件,我知道,我知道爲什麼MongoDb創建它們。我開始在數據庫的兩個集合中添加記錄一段時間後,MongoDb創建了另一個數據文件.2 --- 64 MB。當我查看兩個集合和索引的大小時,我發現總大小僅爲30 MB,它應該很容易地適合最初的兩個文件.0和.1,但爲什麼MongoDB正在創建第三個文件?

這裏是大小細節

  1. Collection1數:5230尺寸:9.5 MB存儲:18.8 MB指數:0.2 MB填充:1
  2. Collection2數:1大小:1 KB存儲:64 KB指數: 7 KB填充:1個
  3. system.indexes數:2大小:0.2 KB存儲:8 KB指數:0字節填充:1個

沒有其他集合是DB。如您所見,總存儲容量不超過30 MB。爲什麼mongoDb在有兩個數據文件的大小已經是16 + 32 MB時創建了第三個文件?

回答

1

這是因爲mongodb預分配存儲文件。假設你快速填充這兩個文件。您不希望在分配新文件時等待,因爲在某些文件系統上可能需要時間。相反,mongodb安排,以便在每個時刻都有一個空文件,準備寫入。

+0

但爲什麼這麼快?總共使用的大小隻有30 MB,它還有18 MB的空閒空間。 –

+0

但它沒有一個完整的空文件 –