MongoDB限制存储大小?

Posted

技术标签:

【中文标题】MongoDB限制存储大小?【英文标题】:MongoDB limit storage size? 【发布时间】:2010-12-01 18:28:37 【问题描述】:

MongoDB 在 64 位平台上的存储大小限制是多少? MongoDB 能否在一个实例(节点)中存储 500-900 Gb 的数据?您在 MongoDB 中存储的最大数据量是多少,您的经验是什么?

【问题讨论】:

我们正在使用 PSA 故障转移进行 12 TB 的备份/恢复,但它可以运行。 【参考方案1】:

您可能会对 MongoDB 网站上的 "production deployments" 页面感兴趣。列出了许多包含基础设施信息的演示文稿。例如:

http://blog.wordnik.com/12-months-with-mongodb 说他们每个节点存储 3 TB。

【讨论】:

【参考方案2】:

根据 MongoDB 3.0 MMAPv1 存储引擎限制,下表列出了 MongoDB 在不同操作系统上的存储限制。

MMAPv1 存储引擎将每个数据库限制为不超过 16000 个数据文件。这意味着单个 MMAPv1 数据库的最大大小为 32TB。设置 storage.mmapv1.smallFiles 选项可将此限制降低到 8TB。

使用MMAPv1存储引擎,单个mongod实例无法管理超过底层操作系统提供的最大虚拟内存地址空间的数据集。

                            Virtual Memory Limitations

Operating System           Journaled                Not Journaled

   Linux                 64 terabytes               128 terabytes

Windows Server 2012 R2
and Windows 8.1          64 terabytes               128 terabytes

Windows (otherwise)       4 terabytes                8 terabytes

参考:MongoDB Database Limit。

注意WiredTiger 存储引擎不受此限制。

在单个节点上拥有超过 2GB 的另一种方法是运行多个 mongod 进程。所以分片是一种选择,或者是跨进程进行一些手动分区。

希望这会有所帮助。

【讨论】:

我很好奇。 “每个数据库”到底是什么意思?服务器上的单个安装是否被视为数据库或具有多个分片的整个集群? (可能不是后者 - 对吧?否则 mongo-cluster 的绝对最大值将是 32TB,这太荒谬了) 在这次讨论之后,我有与@skofgar 相同的查询。我很想知道 Mongodb 的局限性。如果有人遇到过节点计算示例 - 具有 C 节点和 Y 内存的集群,那么存储将是 C*0.8*Y 之类的东西,您能否分享一个链接。【参考方案3】:

您不会在 64 位系统上运行 1TB 的上限,但是 Mongo 确实将索引存储在内存中,因此流畅的体验取决于您的索引大小和您拥有的内存量。但是,如果您有足够强大的系统,那将不是问题。

【讨论】:

在我们的案例中,我们正在处理从 eBay 某些市场检索到的多年历史数据的数字。在我们的情况下,1TB 绝对是我们最关心的问题——不要太快排除如此大的数字。但是对于日常使用来说,你是对的 - 1TB 是非常极端的。 @Joshua Burns 我认为您误解了答案。我相信@Donnie H 的意思是 1 TB 的数据没有接近 MongoDB 的最大容量,并不是说 1 TB 是永远无法达到的数据量。

以上是关于MongoDB限制存储大小?的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 索引限制

MongoDB 单文档大小限制为 16MB

天蓝色中的 DocumentDB(通过 MongoDB 协议)集合大小限制

mongodb怎么插入多个文档

李老师 mongoDB中 字符类型的字段 有大小长度限制吗

mongodb Gridfs操作