mongodb - 如何对单调键上的范围查询的集合进行分片?
问题描述
我有一个名为高度的字段的集合。高度单调增加,即每个新文档有效地具有先前文档的高度+1 的高度。
我想分片这个集合,因为我知道这个集合会变得很大。我将在此集合上运行的查询类型基本上是为了支持分页,它们都将使用高度作为页面标记。
我将运行的查询示例:
db.collection1.find({
height: { $lt: 1000)
})
.sort({ height: -1 })
.limit(100)
问题:远程分片,即使用高度作为分片键是这些查询的最佳策略吗?
到目前为止我的想法:
如果我使用hashed sharding,高度相近的文档将分散在不同的分片中。所以这不是我查询的最佳策略。
如果我使用远程分片,所有写入将始终在一个分片上结束,因为高度总是增加。但是读取历史数据应该仍然能够利用分片。我可能不得不偶尔添加新的分片以继续传播新数据。
分区分片听起来也可以,但似乎比远程分片更复杂。
解决方案
推荐阅读
- javascript - 用ajax更新表
- android - 使用 LiveData 时无法进入 MainActivity
- php - Laravel 5.8:记住我的令牌没有保存在数据库中
- javascript - 当生成的 HTML 看起来找到时,为什么 Enzyme 找不到我的元素?
- css - 增加高度时如何将弹性项目保持在容器顶部
- ruby-on-rails - 无法检测多对多关系中的错误
- system-verilog - 我们如何将整数变量放入任务字符串中?
- html - 如何设置网格中一行的自定义高度?
- sql - 从每个组oracle中选择最高记录和计数?
- nuxt.js - 如何使用 AVA 进行单元测试?