我有一个目前由内置的"_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 中没有改变,分片工作需要散列 _id索引。
| 归档时间: |
|
| 查看次数: |
2453 次 |
| 最近记录: |