选择一个好的mongodb分片键

时间:2014-10-21 08:38:42

标签: mongodb sharding

我有一个包含3个字段的集合

  • _id = ID_account与ID_reccord = int64混合
  • id_account = int32(自动增量密钥)
  • id_reccord = int32(自动增量密钥)

在集合中,1 id_account平均有300条记录,但很少有id_account(特殊帐户)可以有数百万条记录。

最初我想使用ID_account作为分片键,但是对于拥有数百万条记录的少数帐户来说,它不会很好

现在我认为使用ID_account和id_reccord作为分片键。但由于id_reccord是一个自动增量键,这不是问题吗?是不是更好地使用我可以从ID中提取的随机密钥(比如invert_id或其他你可以建议我从id中生成一个随机数的东西)?

那么更好的选择:

  • _id = 13846974562326
  • id_account = 3224
  • id_reccord = 22
  • inverted_id = 62326547964831

  • _id = 13846974562327
  • id_account = 3224
  • id_reccord = 23
  • inverted_id = 72326547964831

  • _id = 13846974562328
  • id_account = 3224
  • id_reccord = 24
  • inverted_id = 82326547964831

那么更好的是什么

  1. 在id_account上使用分片键
  2. 在id_account和id_reccord
  3. 上使用分片键
  4. 在id_account和inverted_id
  5. 上使用分片键

    所有id_account,id_reccord和inverted_id都可以从_id中提取

    感谢您的帮助

0 个答案:

没有答案