gpt4 book ai didi

mongodb - 在 MongoDB 中正确实现散列分片键

转载 作者:IT老高 更新时间:2023-10-28 13:28:42 25 4
gpt4 key购买 nike

我有一个当前由内置“_id”(ObjectId)索引/查询的集合。我不想在这个键上分片,因为它是顺序的(以日期为前缀)。 Mongo 2.4 的文档说我可以对这个键的哈希进行分片,这听起来很棒。像这样:

sh.shardCollection("records.active", { _id: "hashed"})

问题:我是否必须首先在事件集合上创建散列索引:

db.active.ensureIndex({ _id: "hashed"})

或者这不是必需的吗?我不想在不必要的索引上浪费空间。

相关问题:如果我确实使用 ensureIndex({ _id: "hashed"}) 创建了一个散列索引,我可以删除默认的“id”索引吗? Mongo 会知道对 _id 字段进行查询,对它们进行哈希处理并针对哈希索引运行它们吗?

谢谢...

最佳答案

_id 索引和 散列 _id 索引都需要。在 MongoDB 2.4 中,您不必在对集合进行分片之前显式调用 db.active.ensureIndex({ _id: "hashed"}),但如果您不这样做,则 sh.shardCollection( "records.active", { _id: "hashed"}) 将为您创建哈希索引。

_id 索引是复制所必需的。

要在 MongoDB 中对集合进行分片,您必须在分片键上有一个索引。这在 MongoDB 2.4 中没有改变,并且分片需要 hashed _id 索引才能工作。

关于mongodb - 在 MongoDB 中正确实现散列分片键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15682392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com