shard
shard是mongoDB的数据存储构件。
是逻辑上的一种称呼,集群中,shard是一个instance的集合。如下图所示:
示意图画的不好,纯粹是为了自己记忆存档而用,莫喷。
一般为了数据的安全性,shard构建成1primary+2secondary的模型。
关于数据分布
mongoDB内部处理数据均衡,有2中方式:
- 基于range的分片
如下图所示:
特点:
特定连续数据的情况下,shard的空间利用率较高,弊端就是数据分布不均衡,且数据访问可能会局限于特定的 shard,其余的shard处于空闲状态,整体
性能不高。
- 基于hash的分片
如下图所示:
特点:
数据根据hash算法分布比较均衡,数据响应相比于range的分片也是比较均衡。
以上是个人的理解,有不正确的地方,烦劳各位看客指正,共同进步。