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.
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自己根据当前情况选择的,选择的策略目前不清楚.