1

我正在使用 smallfiles 选项运行 mongod。最初它创建了三个文件

  1. .ns ---16 MB
  2. .0 ---16 MB
  3. .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

没有其他集合是数据库。如您所见,总存储大小不超过 30 MB。当有两个数据文件的大小已经为 16 + 32 MB 时,为什么 mongoDb 会创建第三个文件?

4

1 回答 1

1

这是因为 mongodb 预先分配了存储文件。假设,你很快就填满了这两个文件。您不想在分配新文件时等待,因为在某些文件系统上可能需要时间。相反,mongodb 安排,以便在每个时刻都有一个空文件,准备写入。

于 2013-08-27T20:38:06.320 回答