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分片的主要内容,如果未能解决你的问题,请参考以下文章