因为分片数据库使用分片键来分割块和路由查询,所以我认为也许更多的分片键有助于使更多的查询成为目标
我试着像这样指定多个键

db.runCommand( { shardcollection : "test.users" , key : {_id:1, email : 1 ,address:1}

但我不知道这样做是否管用,有什么坏处

最佳答案

要说清楚,你只能有一把碎片钥匙。所以你不能有多个碎片键。
但是,您建议使用compound index作为切分键。这是可以做到的,但也有一些局限性。
例如,_idemailaddress的组合必须是唯一的。
choosing a shard key的文档。我不能在这里列出更多的注意事项。请看那个文件。

07-26 04:16