多个分片键有助于mongodb的性能吗?

时间:2011-04-13 11:31:19

标签: mongodb sharding

由于分片数据库使用分片键来分割块和路由查询,所以我认为更多的分片键可能有助于使更多的查询成为目标

我试图像这样指定多个键

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

但我不知道它是否有效以及这样做的缺点是什么

2 个答案:

答案 0 :(得分:3)

这里要清楚,你只能有一个分片键。所以你不能拥有多个分片键

但是,您建议使用compound index作为分片键。这可以做到,但有一些限制。

例如,_idemailaddress的组合必须是唯一的。

choosing a shard key的文件。还有几个我不能在此列出的注意事项。请参阅该文件。

答案 1 :(得分:3)

根据以下内容选择分片键:

{coarseLocality : 1, search : 1}

coarseLocality是您想要的数据所在的位置, 搜索是对您数据的常见搜索。

您必须在要剪切的键上有索引,因此如果您选择随机值 你没有查询的关键,你基本上是在浪费一个索引。每增加一个指数 使写入速度变慢,因此保持索引数尽可能低是很重要的。

因此,增加分片键组合无济于事。

摘自Kristina Chodrow的书“Scaling MongoDB”。