MongoDB的分片
来源:互联网 发布:windows 10 更改键盘 编辑:程序博客网 时间:2024/05/17 00:59
分片简介
分片是指将数据拆分,将其分散存储在不同的机器上的过程,有时也叫分区。mongodb支持自动分片,集群自动切分片数据,做负载均衡。其基本思想就是将集合切分成小块,这些块分散到诺干片里面,每个片只负责总数据的一部分,应用程序不必知道哪片对应哪些数据,甚至不知道该数据已经被拆分了,所以要在分片之前运行一个路由进程,该进程名位mongos。mongos知道数据存放的位置,所有的一切细节都由mongos来处理,应用程序不必管理这些细节,只用处理自己的业务就可以了。
分片的架构如下图:
片键
设置分片时,需要从集合里面选一个键,用该键的值作为数据拆分的依据,这个键称为片键。
利用key作为片键,进行自动分片,通过路由去查询。
什么情况下用到分片
1磁盘不够
2单个mongodb满足不了写数据库性能需要
3想将大量数据放在内存中提高性能
分片步骤
4.1 创建一个配置服务器,端口是20000
配置服务器存储了集群的配置信息,数据和片的对应关系,mongos不永久存放数据,所以需要个地方存放分片的配置。
启动配置服务器: mongod --dbpath D:\MongoDBDATA\fenpian --port 20000
4.2 创建路由服务器,端口是30000,并且连接到配置服务器,命令名称是mongos,mongos就是mongodb各版本中都配有的路由器进程,它路由所有服务,然后将结果聚合,不存储数据或者配置信息,但会缓存配置服务器的信息
启动路由:mongos --port 30000 --configdb 127.0.0.1:20000
4.3 添加两个分片数据库端口分别是8081,8082
启动8081的数据库:mongod --dbpath D:\MongoDBDATA\8081 --port 8081
启动8082的数据库:mongod --dbpath D:\MongoDBDATA\8082 --port 8082
4.4利用路由器位集群添加分片,之前不能使用任何数据库语言
进入mongos来添加分片数据库:
db.runCommand({"addshard":"127.0.0.1:8081",allow:true});
db.runCommand({"addshard":"127.0.0.1:8082",allow:true});
4.5打开数据分片功能,为foobar数据库打开分片功能,得先在数据库和集合的级别将分片功能打开
开启数据库foobar分片功能
db.runCommand({"enablesharding":"foobar"});
开启集合分片功能:
插入大量的数据400000
- mongodb 分片的思考
- mongodb的sharding(分片)
- Mongodb的分片部署
- mongodb 分片的思考
- (*)Mongodb的分片配置
- mongodb的分片
- mongoDB 分片的管理
- MongoDB的分片
- MongoDB的分片
- MongoDB的分片测试
- MongoDB分片的搭建
- MongoDB的分片集群
- mongodb的分片
- MongoDB的分片
- MongoDB:分片的配置
- mongoDB 分片的管理
- MongoDB:mongodb的分片技术
- Mongodb数据分片的实现
- 阿里巴巴2015暑期实习经历(吐血整理)
- OpenCV *.dll文件提示错误:cannot find and open the PDB file.
- 必看:Cocos-x 3.2:从C++过渡到Lua
- LeetCode Rotate Array
- 二叉树的建立与先序,后序,中序输出
- MongoDB的分片
- MFC单文档下为视图类添加按钮及其响应函数(手把手截图)
- java获取本周第一天的日期
- atitit.提升兼容性最佳实践 o9o
- WCF的两个uri的区别
- 不建立临时变量,交换两个数中的值
- JQuery处理json与ajax返回JSON实例
- C基础之数组
- 第一周上机实践项目4-图书馆的书