MongoDB 单文档大小限制为 16MB
Posted
技术标签:
【中文标题】MongoDB 单文档大小限制为 16MB【英文标题】:MongoDB Single Document size limit is 16MB 【发布时间】:2013-02-24 19:29:48 【问题描述】:已知信息:据了解,MongoDB 存储在 BSON (Binary JSON) 中,maximum BSON document size 为 16MB。
问题:为什么 16MB 本身为什么不是 32MB 或 64MB 或更多,16MB 的确切限制是什么,以及完全依赖 16MB 的原因是什么?
提到在传输过程中,不会消耗过多的带宽,也不需要服务器过多的RAM。但是,如果我们能负担得起网络带宽和 RAM 内存消耗呢?然后,除了GridFS,我们别无选择。为什么?
这听起来可能很愚蠢。但是请任何人都可以对此提出一些亮点吗?
更新:原来是 4MB,现在是 16MB。
mongodb BSON size
我们可以通过以下命令在 Mongo Shell 上检查它
db.isMaster().maxBsonObjectSize/(1024*1024)
为什么不允许 DBAs 配置它?
【问题讨论】:
是什么让 32 MB 比 16 MB 更符合逻辑? @MattBall 更新了我的问题.. 但是,我希望你能理解我提出的实际问题,并能给出一些提示或回答自己...... @PrincessOftheUniverse:如果你知道为什么是 4MB 现在是 16MB,请回答 这是导致从 4MB 增加的票证:SERVER-431 它是 16MB,因为开发人员决定从之前的 4 MB 改为 16MB。为什么世界不是蓝色的? 【参考方案1】:查看 JIRA 票证上的线程,该线程将值从 4MB 增加到 16MB。关于票有相当大的争论:https://jira.mongodb.org/browse/SERVER-431
他们为什么选择 16MB 而不是 32MB 似乎是武断的。它之所以增加是因为许多人需要存储大于 4MB 的文档(我假设小于 16MB)。有些人在该线程中要求将其设置为可配置的(就像你问的那样),这对我来说很有意义。不知道为什么他们还没有决定这样做。
【讨论】:
这不是任意的,它实际上是依赖于内存分配的。 我的意思是,为什么它增加到 16MB 而不是 32MB,这是相当随意的。在回答中澄清。以上是关于MongoDB 单文档大小限制为 16MB的主要内容,如果未能解决你的问题,请参考以下文章