【问题标题】:does multiple shard key helps performance in mongodb?多个分片键是否有助于 mongodb 的性能?
【发布时间】:2011-08-04 15:26:24
【问题描述】:

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

我试图像这样指定多个键

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

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

【问题讨论】:

  • 我试图解释,但似乎没有运气......只有一个shard key可以作为路由索引,其他似乎对查询没有影响

标签: mongodb sharding


【解决方案1】:

这里要明确一点,你只能有一个分片键。所以你不能有多个分片键

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

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

choosing a shard key 的文档。还有一些我无法在此处列出的注意事项。请参阅该文档。

【讨论】:

    【解决方案2】:

    分片键的选择基于:

    {coarseLocality : 1, search : 1}
    

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

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

    所以,增加分片键组合并没有多大帮助。

    摘自 Kristina Chodrow 的书“Scaling MongoDB”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 2013-05-11
      相关资源
      最近更新 更多