Mongodb哈希分片

时间:2018-08-15 06:05:54

标签: mongodb sharding

如果我选择{a:1,b:1,c:1}作为分片键,并且在查询中我按哈希分片策略过滤{a:1},那么该查询是否是目标操作或正在广播到集群中的每个分片? / p>

如果是有针对性的操作,mongodb如何确定呢?因为{a:1}的哈希值与{a:1,b:1,c:1}的哈希值完全不同

1 个答案:

答案 0 :(得分:0)

简单的回答是:是的。

这样看:

让我们假设您有以下收藏:

    //1
    {
      a: 1,
      b: 1,
      c: 1,
      d: 1

    },
    //2
    {
      a: 1,
      b: 1,
      c: 1,
      d: 2
    },
    //3
    {
      a: 1,
      b: 1,
      c: 2,
      d: 5
    }

根据您的索引,文档1和2必须具有相同的批量(例如,在1号分片上),而文档3可以存储在不同的批量(例如,在2号分片上)

现在,如果您搜索{a:1},则应同时显示所有三个文档。这意味着mongo必须将que分发到1号和2号分片。

关于第二个问题,在MongoDb中,您将根本无法执行Compound-Hashed-Index(即使可以,也可以执行...是的。哈希值可能是diff)