提高mongodb对非共享密钥的搜索性能

时间:2019-04-09 06:02:01

标签: mongodb performance indexing

我有一些示例json,如下所示。

 {
       "userid":1,
       "name":"test",
       "phone":"7878787878",
       "email":"test@mail.com",
       "uuid":"testingOne",
       "location":"ZoneA"
    }

我选择了分片键作为用户ID ,因为它具有很好的基数。

db.userDetails.createIndex( { "userid": 1 }, { unique: true } )
db.userDetails.createIndex( { "phone": 1 } )
db.userDetails.createIndex( { "email": 1 } )
db.userDetails.createIndex( { "name": 1 } )

sh.shardCollection( "userDB.userDetails", { userid: "hashed" } )

现在有一个额外的要求,有些查询可能需要基于电话或电子邮件进行搜索,但是非常罕见。 因此,我不想再次基于这些新的搜索键进行分片,我只是启用了索引。

现在问题是

  1. 这些刚刚索引的键的最坏情况搜索延迟是多少?

  2. 如果我有5个分片,是否可以选择强制mongo在所有分片上并行执行这种搜索

有没有更好的方法来固定搜索而无需碎片

0 个答案:

没有答案