在MongoDB中选择正确的分片键

时间:2013-05-21 19:00:56

标签: mongodb indexing sharding

我们正在构建我们的第一个 MongoDB ,目前我们正在尝试选择正确的分片键。

我们主要集合中的每个文档都包含大约40 voice call个相关字段,我们在查询中使用的主要字段是UserId字段。这就是我们考虑useridCallStartTime的复合分片键的原因。

他们不确定第二个领域,因为StartTime总是在前进,有人可能会认为它不够随意。这导致我们考虑将其替换为UserIdhashed _id(哈希后的mongo内部ID)。

第一个选项是好还是我们最好使用后者?

2 个答案:

答案 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以避免分散 - 收集操作。