对mongodb的shard机制的一点测试

 1.还没插入数据,只创建了空数据库和空集合,就分配了4K的storageSize和4K的索引.证明一个extent的大小是4K
               


2.运行db.runCommand({'enableshardin':'qiu'})之后没有什么变化.
3.运行db.runCommand({'shardcollection':'qiu.qiu','key':{'_id':1}})后发生了变化




从上面的图中看到在shard0000上有一个chunk,chunk的信息如下:






4.当运行db.qiu.insert({'_id';1,'value':'1234567890'})之后变化如下:







可以看到storageSize和indexSize爆增了4倍.但chunks还没有什么变化.




5.然后再运行db.qiu.insert({'_id';2,'value':'1234567890'})没有发生什么变化.说明没有进行split,或migrate.


6.当插入了100数据后chunks变为:




结论:1.extent的大小为4K.
          2.在没插入数据之前,会在一个集合的primary shard上预先创建一个chunk.这个chunk可能就是上面的extent.

          3.插入数据之前有1个data extent和1个index extent.插入数据后(只要插入一条数据就算),数据库文件会大增为16k,索引也为16K,应该是预先分配了4个data extent和4个

              index  extent.

          4.数据的分片操作是大于chunk的大小后进行的,拆分点应该是shard自己根据当前情况选择的,选择的策略目前不清楚.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值