翻译或纠错本页面
使用哈希片键对集合分片¶
2.4 新版功能.
Hashed shard keys use a hashed index of a field as the shard key to partition data across your sharded cluster.
在使用哈希片键时,可以参见 哈希片键 来选择一个好的字段.关于哈希索引片键的限制,参见 创建一个哈希索引 .
注解
如果在对一个集合使用哈希片键开启分片时,有数据块的均衡正在进行,那么在自动均衡将这个集合均衡完成之前,数据块的分布可能是不均衡的.
对集合开启分片¶
使用以下的命令在集合上使用哈希片键开启分片:
sh.shardCollection( "records.active", { a: "hashed" } )
这个操作将 records 数据库的 active 集合,使用 a 字段作为哈希片键开启分片.
指定最初的数据块数目¶
在开启分片时,如果集合是空的,MongoDB会自动创建并迁移数据块以保证每个分片上都有两个数据块.在使用 shardCollection 时增加 numInitialChunks 参数可以控制MonogDB一开始创建的数据块数量.
警告
MongoDB的 hashed 索引会将浮点数截断为64位整数,比如,对于 2.3 ,``2.2`` 和 2.9 , hashed 索引会存储相同的值,为了避免这一点产生,不要在哈希索引中使用不能可靠地转化为64位整数的浮点数.MongoDB的哈希索引不支持大于 253 的浮点数.