码迷,mamicode.com
首页 > 数据库 > 详细

mongodb分片

时间:2018-04-25 21:00:46      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:col   查询   有一个   1.3   oplog   mysql   需要   ash   SQ   

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分片

标签:col   查询   有一个   1.3   oplog   mysql   需要   ash   SQ   

原文地址:https://www.cnblogs.com/hustdc/p/8946711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!