1

我正在构建一个具有以下用例的跟踪平台。

  1. 需要跟踪 50,000 辆汽车
  2. 每辆车每 60 秒传输一次其位置。
  3. 获取返回 X 公里范围内所有车辆的 API。

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

4

1 回答 1

2

一旦写入,您将无法更改记录的分片键字段。使用区域作为分片键将阻止您跨区域移动,除非您删除原始区域中的记录并使用新区域插入。

在选择分片键时,请查找与您最常见的查询模式匹配的分片键。查询分片键将允许您直接从分片中检索记录。不使用分片键的查询必须对所有分片执行分散聚集查询。

如果已启用或可以使用 Mongodb 2.4,并且您不需要执行基于范围的查询,您可能需要考虑使用哈希分片键,即使您的分片键是单调递增的,也可以实现均匀分布。有关选择分片键的建议,请参阅此页面

于 2013-04-05T13:56:44.640 回答