首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >范围切分或散列切分

范围切分或散列切分
EN

Stack Overflow用户
提问于 2017-05-01 09:12:00
回答 1查看 2.1K关注 0票数 0

我有一个约会网站,用户之间的互动。

数据如下:

代码语言:javascript
复制
ID Sender Receiver Msg      TIME
1   22     33      Hi       2017-04-01 
2   22     33      how r u  2017-04-02
3   33     22      i am gd  2017-04-03 
4   22     44      Hey      2017-04-03 

所需查询类型:

  1. 列表Sender=22接收机
  2. 列表Receiver=33发件人
  3. 最新的Sender=22和receiver=33消息
  4. 存档的旧记录说是三年前

我应该如何在这里配置MongoDB切分?

问题:

  1. 如果我使用范围分割:
代码语言:javascript
复制
- All latest records will move to one shard, so it will be heavily used.
- Also need to scan all shards to list any of above info 
- Helpful for archiving

  1. 如果我使用散列切分:
代码语言:javascript
复制
- Record distribution will be even
- Also need to scan all shards to list any of above info 
- bad for archiving

EN

回答 1

Stack Overflow用户

发布于 2017-05-01 11:54:53

切分的效率在很大程度上取决于数据的设置和数量。所以,如果你真的想要一个答案,你需要用有代表性的数据进行测试。不过,我可以回答一些关于这个想法,如果它可以帮助。

分片的想法是让多台机器在一个查询上工作。由于数据集较小,对碎片的查询将完成得更快,但如果时间增益小于合并结果所需的时间(例如,如果您想要排序或有限的结果),则将确定它在您的情况下是否有益。

我不会担心什么是“不好的成就”,因为这是你很可能只运行一周/月,在一些低交通时间。这样,它不应该干扰日常生活。

您还应该测试是否需要这种归档。如果使用正确的查询并限制结果,这些旧消息甚至可能对性能没有任何影响。

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

https://stackoverflow.com/questions/43716772

复制
相关文章

相似问题

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