菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
80
0

mongodb分片

原创
05/13 14:22
阅读数 85559

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的命令。

 

发表评论

0/200
80 点赞
0 评论
收藏