0

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

我们主集合中的每个文档都包含40 voice call相关字段,我们在查询中使用的主要字段是 UserId 字段。这就是为什么我们正在考虑userid和的复合分片键CallStartTime

他们不确定第二个领域,因为StartTime它总是在进步,有人可能会争辩说它不够随机。这导致我们考虑将其替换为UserIdand hashed _id(哈希后的 mongo 内部 id)。

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

4

2 回答 2

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

于 2013-05-22T15:59:30.290 回答
0

您正在执行哪种查询?访问模式是什么。

理想情况下,您需要一个具有良好基数、写入扩展和查询隔离的密钥。

在上面的示例中,您需要知道 callstarttime 或 hash 以避免分散收集操作。

于 2013-05-21T22:34:29.340 回答