这与我的last question相关。
我们有一个应用程序,我们每个用户都在存储大量数据。由于数据的性质,我们之前决定为每个用户创建一个新的数据库。这将需要一个大的号码。数据库(可能是数百万) - 以及某人pointed out in a comment,这表明错误的设计。
所以我们改变了设计,现在我们正考虑将每个用户的整个信息存储在一个集合中。这意味着一个集合精确映射到一个用户。由于每个数据库有12,000个可用集合,因此我们可以为每个数据库存储12,000个用户(并且可以增加此限制)。
但是,现在我的问题是 - 是否有任何限制。集合可以拥有的文档。由于我们需要为每个用户存储数据的方式,我们希望有一个巨大的(在极端情况下数千万)没有。每份文件的文件。对于MongoDB和设计方案来说,这样可以吗?
修改
感谢您的回答。我想那时每个集合都可以使用大量的文档。
该应用程序是一个专门的库存控制系统。每个用户都有一个大号。与他们相关的一小部分信息。每条信息都有一个类别和该类别下的一些相关内容。此外,没有两个集合需要查看彼此的数据 - 因此不需要触摸多个集合的索引。
答案 0 :(得分:2)
调整你可以拥有的集合/索引的数量(~24k是极限 - 〜12k是他们对集合的说法,因为你默认有_id索引,但是请记住,如果你有更多的索引集合,也将使用命名空间),你可以在启动mongod时使用--nssize选项。
在一个集合中有大量的文档实现了数十亿个文档(我确信有几个文档有数万亿个),所以“数千万”应该没问题。有一些数字,例如返回的计数具有64位的约束,因此在您点击2 ^ 64个文档后,您可能会发现一些问题。
您将要查看哪种查询和更新负载?
答案 1 :(得分:0)
你的设计仍然没有多大意义。为什么要将每个用户存储在一个单独的集合中?
您对数据有哪些索引?如果您通过某个字段编制索引,该字段具有在所有用户中通用的内容,则通过使用一个索引创建单个集合,可以显着节省总索引大小。
在性能方面,索引大小通常是限制因素,而不是数据库总大小。
为什么每个用户有这么多文档?它们有多大?
Craigslist在MongoDB中放置了2亿多个文档,这样如果你有硬件来支持它并且对你的索引效率不高就不应该成为问题。
如果你在这里发布了更多的架构,你可能会得到更好的建议。