mongodb分片

Posted phoenix tree

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb分片相关的知识,希望对你有一定的参考价值。

1 什么时候需要分片

1.1 单台服务器磁盘空间不够

比如某个集合过大。

1.2 单台服务器的内存空间不够

因为想要把大量数据加载到内存中,单台服务器内存不够,可以分片,使用多台服务器的内存。

1.3 单台服务器的cpu不够

当写操作过多的时候,单台服务器cpu忙不过来,分片,使用多台服务器分散写压力。

2 分片操作

配置

添加分片服务器

开启数据库的分片

对某个collection开启分片

3 数据迁移

数据迁移由均衡器进行,它们周期性的检查各个分片数据是否平衡,即是否一样多,如果不是一样多的话,会把多的分片的数据迁移到少的分片。这个可以设置在半夜进行。

除了平衡之外,均衡器还有一个作用是,如果删除一个分片的话,需要它把该分片的数据迁移到其它的分片上去。

4 分片之后的查询查找

 

5 分片之后的插入操作

6 分片的原理

6.1 分片的类型

基于hash的分片:计算hash值,然后mod

基于范围的分片:这样的分片有利于基于范围的查询。

6.2 分片的两大操作

分裂:将一个collection分裂成多个数据库中的collection。

均衡:保证每个分片的数据一样多。

7 可以设置各个分片的副本

这样可以避免单点故障。

8 mongodb的主从复制

mysql的binlog是一个日志文件,里面是执行的sql命令;

mongodb的oplog,存放在mongodb的local database下,里面也是执行的mongodb的命令。

 

以上是关于mongodb分片的主要内容,如果未能解决你的问题,请参考以下文章

mongoDB分片集群

MongoDB——MongoDB分片集群(Sharded Cluster)两种搭建方式

Docker——基于Docker搭建MongoDB分片集群

Mongodb集群架构之分片架构

MongoDB分片搭建

MongoDB——MongoDB分片集群(Sharded Cluster)