mongodb的分片
来源:互联网 发布:超级准的心理测试知乎 编辑:程序博客网 时间:2024/06/05 16:01
对比副本集,在T级别的数据,如果是副本集的话,我们的磁盘和内存都吃不消,所以我们需要把数据分摊到多台机器上
下面我对这张图解释一下:
人脸:代表客户端,客户端肯定说,你数据库分片不分片跟我没关系,我叫你干啥就干啥,没什么好商量的。
mongos:首先我们要了解”片键“的概念,也就是说拆分集合的依据是什么?按照什么键值进行拆分集合....
好了,mongos就是一个路由服务器,它会根据管理员设置的“片键”将数据分摊到自己管理的mongod集群,数据和片的对应关系以及相应的配置信息保存在"config服务器"上。
mongod: 一个普通的数据库实例,如果不分片的话,我们会直接连上mongod。
1.开启config服务器
mongod --dbpath=e:\mongodb\mongodb-win32-x86_64-2.0.6\db --logpath=e:\mongodb\mongodb-win32-x86_64-2.0.6\log\log.txt --logappend --port=27017
2.开启mongos服务器
mongos --logpath=e:\mongodb\slaveA\log\slaveA_log.txt --logappend --port=27018 --configdb=127.0.0.1:27017(mongos节点充当路由器作用,不需要指定dbpath)
3.启动mongod服务器
mongod --dbpath=e:\mongodb\slaveB\db --logpath=e:\mongodb\slaveB\log\slaveB_log.txt --logappend --port=27019mongod --dbpath=e:\mongodb\slaveC\db --logpath=e:\mongodb\slaveC\log\slaveC_log.txt --logappend --port=27020mongod --dbpath=e:\mongodb\slaveD\db --logpath=e:\mongodb\slaveD\log\slaveD_log.txt --logappend --port=27021
4.服务配置
1.分片
我们客户端直接跟mongos打交道,所以把配置好的两个mongod交给mongos,即添加分片
在mongos窗口use admin;
db.runCommand({"addshard":"127.0.0.1:27019",allowLocal:true});
db.runCommand({"addshard":"127.0.0.1:27020",allowLocal:true});
db.runCommand({"addshard":"127.0.0.1:27021",allowLocal:true});
2.切分数据
在mongos窗口use admin;
db.runCommand({"enablesharding":"test"}); -- 指定库
db.runCommand({"shardcollection":"test.user","key":{"name":1}}); -- 指定库下的表和片键
测试效果
db.user.insert({"name":"zhangsan","age":112});db.user.insert({"name":"lisi","age":118});for(var i=0;i<100000;i++){ db.user.insert({"name":"jack"+i,"age":i});}db.printShardingStatus();
对一个集合分片时,一开始只会创建一个块,这个块的区间是(-∞,+∞),-∞表示MongoDB中的最小值,也就是上面db.chunks.find()我们看到的$minKey,+∞表示最大值即$maxKey。
Chunck的分割是自动执行的,类似于细胞分裂,从区间的中间分割成两个
0 0
- mongodb 分片的思考
- mongodb的sharding(分片)
- Mongodb的分片部署
- mongodb 分片的思考
- (*)Mongodb的分片配置
- mongodb的分片
- mongoDB 分片的管理
- MongoDB的分片
- MongoDB的分片
- MongoDB的分片测试
- MongoDB分片的搭建
- MongoDB的分片集群
- mongodb的分片
- MongoDB的分片
- MongoDB:分片的配置
- mongoDB 分片的管理
- MongoDB:mongodb的分片技术
- Mongodb数据分片的实现
- HTTP与HTTPS异同||HTTP1.0与HTTP1.1差别
- loadrunner11录制时events为0的解决办法
- SQL语言20170419
- xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH
- 快速查找兄弟字符串
- mongodb的分片
- 使用librtmp进行H264与AAC直播
- 【leetcode】31. Next Permutation 数字序列的所有组合中比给定串大的下一个最小的串
- 【整理】JDBC事务管理编程实现
- redis咋就这么好玩呢?
- maven探究三:maven配置全局的jdk
- AX 2012 R3 将下架, Dynamics 365将新增中间价位的用户许可 & 更多
- 列王的纷争-深度传感器已被巨头瓜分?
- 微服务网关ajax转发跨域的问题解决方案