MongoDB 中的复合分片键是否与复合索引类似?

时间:2021-06-29 22:19:29

标签: mongodb

假设我的集合使用由 BlockHash 和 BlockHeight 字段组成的复合分片键。

如果我运行查询以查找给定 BLockHeight 的文档,由于我们没有按 BlockHash 过滤,Mongo 是否必须命中每个分片?在分片键中有 BlockHeight 对查询有帮助吗?

1 个答案:

答案 0 :(得分:1)

理想情况下,每个查询都应该有分片键。根据数据的基数和逻辑分类进行选择。

如果您在 BlockHash 和 BlockHeight 上进行分片(按此顺序),并且您只需在 BlockHeight 上运行查询。你最终会击中所有的碎片。

作为最佳实践,请养成在查询中运行 .explain("executionStats") 的习惯。这将告诉您如何解析查询。以及它接触了哪些碎片。