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

标签 mongodb

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

所有操作系统(32 位和 64 位)都一样吗?

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

> show dbs
local   (empty)
tutorial        0.203125GB

最佳答案

MongoDB Documentation

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

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

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

在 Windows 上,不会预先分配附加数据文件。 NTFS 可以相对快速地分配用零填充的大文件,从而无需预先分配。

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

您可以使用 --noprealloc 命令行参数禁用预分配。该标志非常适合使用小型数据集进行测试,在这种情况下,您可以在每次测试后删除数据库。它不应该在生产服务器上使用。

对于大型数据库(数百 GB 或更多),这不会产生重大影响,因为未分配的空间相对较小。

关于mongodb - 0.203125GB MongoDB数据库的计算逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9843318/

相关文章:

mongodb - 来自 Collection 的 Meteor .find() 返回 [object Object]

MongoDB:按现有字段排序,然后按字母顺序排序

php - Mongodb查询问题

java - 如何在 Mongo Async Java Driver 上实现多线程?

javascript - $lookup结果显示[object Object]

java - MongoDB 和 Morphia - 传统 id(长)而不是 ObjectId

python - pymongo - 搜索包含 $ 和运算符的文档集合,不区分大小写

javascript - 如何将两种类型分配给 Mongoose 模式中的特定键?

javascript - 来自 Mongoose 的类型错误

javascript - 将用户信息从users.js发送到app.js