我有一个包含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
那么更好的是什么
- 在id_account上使用分片键
- 在id_account和id_reccord
上使用分片键
- 在id_account和inverted_id
上使用分片键
醇>
所有id_account,id_reccord和inverted_id都可以从_id中提取
感谢您的帮助