2012-02-28 71 views
13

我正在嘗試MongoDB,但我不明白它創建的文件。MongoDB創建文件

如果我在我的數據庫收集創建一個文檔可以說用戶,它會在我的/數據/ DB/

_tmp (folder) 
mongod.lock 
users.0 - 16.8MB 
users.1 - 33.6MB 
users.ns - 16.8MB 

我已經添加了一些文件和文件大小創建這些文件沒有改變..我有點迷失在這裏...有誰知道這些文件是如何工作的?我試圖用gedit/vim打開它們,沒有任何東西。

在此先感謝您的幫助。

+0

「users」會是數據庫嗎?這些文件對應於您的數據庫而不是集合。不是嗎? – 2014-04-20 11:26:10

回答

41

.0,.1文件是數據文件。每個數據文件都預分配給一個特定的大小。 (這是爲了防止文件系統碎片等原因。)數據庫的第一個文件名爲.0,那麼.1等.0將爲64MB,.1 128MB等,最高可達2GB。一旦文件達到2GB的大小,每個連續的文件也是2GB。 有關數據文件的信息可以在這裏找到:

http://www.mongodb.org/display/DOCS/Excessive+Disk+Space

的 「.ns」 文件命名空間的文件。每個集合和索引都將被視爲一個名稱空間。每個名稱空間都是628字節,默認情況下.ns文件是16MB。

因此,如果每個集合都有一個索引,我們可以創建多達12,000個集合。 --nssize參數允許您增加此限制。

最大.ns文件大小爲2GB。

+1

+1爲了一個好的,徹底的描述。雖然你錯過了_tmp文件夾和鎖。 :) – 2012-02-28 21:46:41

+1

我完全讀過他們! – Bill 2012-02-28 22:48:12

+0

嗨!我想創建一個副本集,什麼是數據庫擴展? 應該使用.0還是.1或.ns? – Sekai 2014-01-22 11:09:52

1

Mongo預分配空間塊,所以你的文件大小將保持在16Mb,直到你有超過16Mb的數據,並且它翻轉一個新的塊。

+0

所以我想users.0和users.1是我的文檔將被存儲的那些文件,以及users.ns和爲什麼users.0和.1?我沒有所有這些信息..我只有一個用戶加入 – Gerep 2012-02-28 21:03:54

+0

我不知道爲什麼你會關心 - 這些是Mongo專有的二進制文件後端。他們不打算直接用於你。 – 2012-02-28 21:10:56

+0

users.ns是命名空間,默認情況下是16.8MB大小,除非更改配置,否則它不會增長。它擁有集合名稱之類的東西,可能還有其他我不知道的東西。 – 2012-02-28 21:11:44