命令行下制定片键是这个思路, 程序里不同的语言可能不一样
1 为数据库”test”启用分片功能sharding
2 如果是按_id列进行分片,要先把_id列按照hashed建立索引
3 分配Shard Key,使用hash key:
具体步骤如下:
一般用id列 hash做片键,
#为数据库”test”启用分片功能sharding:
sh.enableSharding("test")
在为collection分片之前需要建立索引:
db.users.ensureIndex({_id:"hashed"}); #1如果是按_id列进行分片,要先把_id列按照hashed建立索引
分片是对某个collection的数据进行分片。
分配Shard Key,使用hash key:
把test库里的users表按_id字段分片,使用hash算法分片
sh.shardCollection("test.users",{_id: "hashed" }) #2 再按_id列进行分片
例如:
在NosqlBooster客户端中的执行脚本:
sh.enableSharding("test");
db.getCollection("yc_centerdata_log_t_20200301").ensureIndex({_id:"hashed"});
sh.shardCollection("test.yc_centerdata_log_t_20200301",{_id: "hashed" }) ;
db.getCollection("yc_centerdata_log").ensureIndex({_id:"hashed"});
sh.shardCollection("test.yc_centerdata_log",{_id: "hashed" }) ;