我们正在构建我们的第一个 MongoDB ,目前我们正在尝试选择正确的分片键。
我们主要集合中的每个文档都包含大约40 voice call
个相关字段,我们在查询中使用的主要字段是UserId字段。这就是我们考虑userid
和CallStartTime
的复合分片键的原因。
他们不确定第二个领域,因为StartTime
总是在前进,有人可能会认为它不够随意。这导致我们考虑将其替换为UserId
和hashed _id
(哈希后的mongo内部ID)。
第一个选项是好还是我们最好使用后者?
答案 0 :(得分:1)
请考虑以下文档中的建议:http://docs.mongodb.org/manual/core/sharded-cluster-internals/#shard-keys
或者,如果没有自然选择,请考虑使用散列分片键(mongodb 2.4+) http://docs.mongodb.org/manual/reference/glossary/#term-hashed-shard-key
答案 1 :(得分:0)
您正在执行哪些查询?什么是访问模式。
理想情况下,您需要具有良好基数,写入缩放和查询隔离的密钥。
在上面的示例中,您需要知道callstarttime或hash以避免分散 - 收集操作。