手动预先分片:
目的:手动预先分片是为了防止未来chunk的移动,减少IO。
sh.shardCollection("shop.users",{"userId": 1 })
for(var i=1; i<=30; i++){ sh.splitAt("shop.users", {userId: i*1000}) }
插入数据进行验证:
for(var i=1; i<30000; i++){ db.users.insert({userId: i,name: 'hello'}) }
由上可见,数据被均匀的分配在不同shard上。