mongdb sharding key选择

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

1 .选择key为hash

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

然后插入数据
<pre>
for(var i=1; i<10000; i++){var s_value = (i % 10) + 1;
db.log.insert({uid:i,sid:s_value});}
</pre>

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

2. 选择key为普通

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

然后插入数据

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容