mongodb - 为什么在 32 位限制下是 2 GB 而不是 4 GB?

标签 mongodb

很抱歉问了这个愚蠢的问题,但是什么时候 reading about 32 bits limitation ,我发现由于内存映射方法,MongoDB 无法存储超过 2 GB,但是:

2^32 = 4 GB

那么为什么限制只有 2 GB?那是因为:

2^(32-1) = 2 GB

最佳答案

这是由于virtual address space组织。 4 GB 地址空间的一部分是为操作系统(内核空间)保留的,因此只有部分(用户空间,通常为 2GB 或 3GB)可供进程本身使用。内存映射文件必须符合此限制。

关于mongodb - 为什么在 32 位限制下是 2 GB 而不是 4 GB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16895485/

相关文章:

javascript - Angular 似乎没有运行

node.js - Mongodb - 未知的顶级运算符 : $elemMatch"

javascript - 无法读取未定义的属性 'push'

c# - 是否可以获取 IQueryable<T> 上使用的谓词 (Expression<Func<T,bool>>) 并将其应用于另一个 Lambda 函数?

javascript - MongoDB/Mongoose中索引号有何意义

javascript - Mongoose 和 Nodejs 具有存储库模式,无需回调

javascript - 蒙戈 : Group and push more than 1 element

mongodb - 使用 $near 按存储在文档中的距离过滤文档

java - MacOS 上的 mongo-java-driver 问题

arrays - 从 mongoose find() 查询中提取一个值