mongodb 学习笔记 09 -- shard分片
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mongodb 学习笔记 09 -- shard分片,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1832字,纯文字阅读大概需要3分钟。
内容图文
概述
shard 分片 就是 把不同的数据分在不同的服务器
模型
其中:
用户对mongodb的操作都是向mongs请求的
configsvr 用于保存,某条数据保存在哪个shard的上
如何使用分片
先启动2个节点作为shard
mongd --dbpath ~/db/mongo1/databse --logpath ~/db/mongo1/log/mongo.log --port 27017 --fork --smallfiles
mongd --dbpath ~/db/mongo2/databse --logpath ~/db/mongo2/log/mongo.log --port 27018 --fork --smallfiles
启动 configsvr,就是比前面的多加了 –configsvr
mongd --dbpath ~/db/mongo3/databse --logpath ~/db/mongo3/log/mongo.log --port 27019 --fork --smallfiles --configsvr
启动mongos,注意–configdb 指定configsvr
mongos --logpath ~/db/mongo4/log/mongs.log --port 27020 --configdb 127.0.0.1:27020 --fork
连到mongos
mongo --port 27020
把前面运行的2个节点,添加进来
sh.addShard("127.0.0.1:27017")
sh.addShard("127.0.0.1:27018")
查看状态
sh.status()
定义分片规则:比如 先声明test库可以分片,然后定义依据my表的my_id来分片
sh.enableSharding(‘test‘)
sh.shardCollection(‘test.my‘,{‘my_id‘:1})
分片原理
n篇文档,形成一个“chunk”,先放到某个shard上,当这片shard的上的chunk数,比其它shard上的chunk数区别大时,就移动chunk到另一个shard上。
修改chunk的大小:比如修改到4m
默认某个chunk的大小是64m
use config
db.setting.save({_id:‘chunksize‘,value:4m})
手动预先分片
前面的分片方法中,根据chunk数来分片,这样会带来影响IO的问题。
可以手动预制分片,例如定义my_id 0~1000 放在shard1中,1001~2000 放在shard2中,2001~3000 中放在shard3中
sh.enableSharding(‘test‘)
sh.shardCollection(‘test.my‘,{‘my_id‘:1})
sh.splitAt(‘my‘,{my_id:1000})
sh.splitAt(‘my‘,{my_id:2000})
sh.splitAt(‘my‘,{my_id:3000})
版权声明:本文为博主原创文章,未经博主允许不得转载。
mongodb 学习笔记 09 -- shard分片
标签:mongodb nosql
本文系统来源:http://blog.csdn.net/billvsme/article/details/46718983
内容总结
以上是互联网集市为您收集整理的mongodb 学习笔记 09 -- shard分片全部内容,希望文章能够帮你解决mongodb 学习笔记 09 -- shard分片所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。