2013-08-27 74 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

但它没有一个完整的空文件 –