mongdb sharding key选择

搭建mongod sharding之后,加入sharding之后,需要选择sharding-key。为了达到均匀分布地效果,sharding-key应该选择为"hashed",否则,sharding数据分布非常不平衡。测试如下。搭建上篇文章的环境,连上mongos集群.

1 .选择key为hash


use be3
sh.enableSharding("be3")
sh.shardCollection("be3.log",{ "sid": "hashed"})

然后插入数据


for(var i=1; i<10000; i++){var s_value = (i % 10) + 1;
db.log.insert({uid:i,sid:s_value});}

查看各个sharding,分别为2000,3000,4999

2. 选择key为普通


use be3
sh.enableSharding("be4")
sh.shardCollection("be4.log",{ "sid": 1})

然后插入数据


for(var i=1; i<10000; i++){var s_value = (i % 10) + 1;
db.log.insert({uid:i,sid:s_value});}

查看各个sharding,分别为0,2000,7999。
其实,普通索引在sharding只有2的时候,分布更为不均衡。插入1w个数据,只有sharding2才有数据,sharding1居然一条数据都没有

你可能感兴趣的:(mongdb sharding key选择)