MongoDB 数据库大小 0.203125GB 是如何计算的?
所有操作系统(32 位和 64 位)都一样吗?
我们可以看到特定数据库的当前使用情况吗?
> show dbs
local (empty)
tutorial 0.203125GB
最佳答案
每个数据文件都预先分配到特定的大小。 (这样做是为了防止文件系统碎片等原因。)数据库的第一个文件名是 .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/