>>>>>>> cn
翻译或纠错本页面

使用哈希片键对集合分片

2.4 新版功能.

Hashed shard keys use a hashed index of a field as the shard key to partition data across your sharded cluster.

在使用哈希片键时,可以参见 哈希片键 来选择一个好的字段.关于哈希索引片键的限制,参见 Hashed Indexes .

注解

如果在对一个集合使用哈希片键开启分片时,有数据块的均衡正在进行,那么在自动均衡将这个集合均衡完成之前,数据块的分布可能是不均衡的.

对集合开启分片

使用以下的命令在集合上使用哈希片键开启分片:

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

这个操作将 records 数据库的 active 集合,使用 a 字段作为哈希片键开启分片.

指定最初的数据块数目

在开启分片时,如果集合是空的,MongoDB会自动创建并迁移数据块以保证每个分片上都有两个数据块.在使用 shardCollection 时增加 numInitialChunks 参数可以控制MonogDB一开始创建的数据块数量.

重要

MongoDB 2.4及以上才支持哈希片键,如果你的集群使用了哈希片键,在之后必须使用2.4版本以上的 mongosmongod .

警告

MongoDB的 hashed 索引会将浮点数截断为64位整数,比如,对于 2.3 ,``2.2`` 和 2.9 , hashed 索引会存储相同的值,为了避免这一点产生,不要在哈希索引中使用不能可靠地转化为64位整数的浮点数.MongoDB的哈希索引不支持大于 253 的浮点数.