2013-04-05 71 views
1

我建立它具有以下使用情况跟踪平台。我们可以通过mongo db中的分片动态地移动文档吗?

  1. 需要跟踪5万辆
  2. 每辆车继电器的位置,每60秒。
  3. 获取API返回的所有车辆在X公里范围内。

所以,我需要扩展写入也达到查询隔离。 我可以使用地理区域创建分片群作为分片键(geohash)。这将帮助我平衡写入并实现查询隔离。但是当车辆跨区域移动时,会发生什么情况,在这种情况下mangodb会自动将文档移动到新的碎片?

回答

2

你不能改变的片键字段写入一次的记录。除非您删除原始区域中的记录并使用新区域插入,否则使用该区域作为分片键将阻止您跨区域移动。

在选择片键,寻找其中一个您最常用的查询模式相匹配。查询分片键将允许您直接从分片中检索记录。不使用分片键的查询将不得不针对所有分片执行分散收集查询。

如果您正在使用Mongodb 2.4,并且您不需要执行基于范围的查询,那么即使您的分片键单调增加,也可以考虑使用允许均匀分布的hashed shard key。有关选择分片键的建议,请参阅this page

相关问题