计算逻辑为0.203125GB的MongoDB数据库?

时间:2012-03-23 16:58:32

标签: mongodb

如何为MongoDB数据库大小计算0.203125GB?

所有操作系统(32位和64位)是否相同?

我们能看到特定数据库的当前使用情况吗?

> show dbs
local   (empty)
tutorial        0.203125GB

1 个答案:

答案 0 :(得分:2)

MongoDB Documentation

每个数据文件都预先分配到特定大小。 (这样做是为了防止文件系统碎片,以及其他原因。)数据库的第一个文件名是.0,然后是.1等.0将是64MB,.1 128MB等等,最多2GB。一旦文件大小达到2GB,每个连续文件也是2GB。

因此,如果最后一个数据文件是1GB,那么如果最近创建该文件可能是90%为空。

此外,在Unix上,mongod将在后台预先分配一个额外的数据文件,并对该文件进行后台初始化。这些文件预先填充零字节。对于较大的数据文件,此初始化可能需要一分钟(较少在快速磁盘子系统上)。在后台预填充可防止在下次分配新数据库文件时出现重大延迟。

在Windows上,未预先分配其他数据文件。 NTFS可以相对快速地分配用零填充的大文件,从而不需要预分配。

一旦开始使用数据文件,下一个将被预先分配。

您可以使用--noprealloc命令行参数禁用预分配。此标志适用于具有小数据集的测试,您可以在每次测试后删除数据库。它不应该用在生产服务器上。

对于大型数据库(数百GB或更多),由于未分配的空间相对较小,因此没有显着影响。