首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有一个有十亿的收藏品还是有一百万件物品的一千件比较好?

有一个有十亿的收藏品还是有一百万件物品的一千件比较好?
EN

Stack Overflow用户
提问于 2014-03-27 20:50:53
回答 1查看 76关注 0票数 2

一个包含单个集合的NoSQL数据库(MongoDB) -- logs --与1000个集合(logs_source0logs_source1)之间的性能有多大差异?如果数据在多个服务器上被共享,这种情况会改变吗?对象包含6到10个键,有时包含一个3-5个对象的数组。应用程序的设计可以使用这两种方法之一,因为_sourceX可以很容易地转换为额外的键,反之亦然。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-27 21:49:48

只要所有这些数据都在一台服务器上,拥有一个大集合或多个小集合就不会有太大的区别。与任何性能问题一样,一个完整的答案必须考虑到您对该数据的预期使用。你经常访问所有这些数据吗?或者,您的工作数据集相对较小,经常被访问,而其他的数据很少被查看?

当有选择地将其中一些数据分页到内存中时,拥有许多小集合可能会更好。当然,一个大型集合也可以有选择地分页到内存中,但至少索引必须完全在内存中(如果可能的话),以确保对数据的快速访问。对于许多较小的集合,这会更容易,因为每个集合都有自己的、小的索引。

但是,MongoDB的切分正是为了解决这个问题(维护大量的数据),它通过将所有内容保存在一个逻辑集合中,但将该集合自动分发到任意多个碎片上。这比自己创建那些单独的集合要灵活得多。除其他外,它允许数据随着时间的推移而被重新平衡,以确保每个碎片都有相同的数据部分。它也更灵活地适应不同数量的碎片,而您的多收集方案似乎依赖于一个相当固定的数据分区(根据源#)。

通过分片,应用程序将完全不知道分布模式,您可以透明地添加或删除任意数量的碎片来处理数据的体积。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22698927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档