我是mongodb的新手,我在DB模式设计方面面临着一个两难境地:
我应该创建一个集合,还是将数据放入多个集合(我想我们可以称之为这些类别).
现在我知道有人问过很多这样的问题,但我认为我的情况有所不同,原因有二:
- 如果我 Select 了很多系列,我将不得不创造大约120个,仅此而已.这在future 不会增长.
- 我知道我永远不需要查询或插入多个集合.因为集合X中的文档与其他集合中存储的任何文档都不相关,所以我总是只需要查询一个.不过,文档可能包含对数据库其他部分的引用(如用户ID等).
所以我的问题是:120个集合能否提高查询性能?对我来说,这是一个有用的优化吗?
还是我应该 Select 单集+分片?
每一个藏品预计都能保存数百万份文件.如果只使用一个,它将存储数十亿个文档.
提前谢谢!
-------编辑:
谢谢你的回答.
事实上,120个系列只是一个brew 的限制,并不是最理想的:
这些Collection 中的数据与网络出版商有关.可能有数百万个这样的网站(任何网站都可以加入).
我想理想的情况是,我可以 for each 出版商创建一个集合(只保存他们的数据).但显然,由于mongo的局限性,这是不可能的.
所以我想出了一个固定数量的集合的 idea ,至少以某种方式分发数据.比如:集合"A_XX"将为名称以"A"开头的出版商保存XX平台相关数据..等等.我们只支持其中的几个平台,所以120个集合就足够了.
在另一个网站上,有人建议使用多个数据库,而不是多个集合.但这意味着开销,然后我将不得不使用/管理许多不同的连接.
你怎么看?有更好的解决方案吗?
对不起,我的原始问题不够具体.
提前谢谢