hexo框架做网站/百度关键词seo年度费用

   日期:2024-12-26    作者:hs998cn 移动:http://mip.riyuangf.com/mobile/quote/49511.html

分片(即sharding)是将数据拆分至不同数据节点的方式。

1、在mongoDB中提供了自动分片的方式,它会根据数据块(chunk)大小的设定,对片键进行拆分

2、mongoDB配置分片,要配置三类节点,包括

  2.1 配置节点:存储分片的配置信息,包括由哪些分片、chunk信息等

  2.2 路由节点:配置完分片后,所有的SQL操作都通过该路由节点,由该路由节点路由至不同的数据节点

  2.3 分片节点:即数据节点,存储拆分后的数据;分片节点可以使一个普通的数据节点也可以使一个副本集

下文记录在单机下,配置一个基本的sharding

配置环境,操作系统: windows 7, mongodb版本: 2.6.4

1、创建文件夹目录 http://www.ztmm.cn/dbs/config http://www.ztmm.cn/dbs/shard1 http://www.ztmm.cn/dbs/shard2

2、启动配置节点  mongod.exe --dbpath http://www.ztmm.cn/dbs/config --port 10000

3、启动路由节点 mongod.exe --port 20000 --configdb localhost:10000 --chunksize 1

备注:此处将路由节点与配置节点关联,同时设置chunksize大小,为测试起见设置为1M

4、启动分片节点

mongod.exe --dbpath http://www.ztmm.cn/dbs/shard1 --port 30000

mongod.exe --dbpath http://www.ztmm.cn/dbs/shard2 --port 40000

5、登陆路由节点,进行配置

mongo.exe localhost:20000

use admin

db.runCommand({"addshard":“localhost:30000”})

db.runCommand({"addshard":"localhost:40000"})//增加分片

db.runCommand({"enablesharding":"test"}); //设置test库为可分片

db.runCommand({"shardcollection":"test.user","key":{"age":1}}); //设置test库中的user集合中age字段为片键

6、测试

登陆路由节点,在该节点中插入大量数据,如20000条use记录

此时登陆两个数据节点,可以发现皆有数据。

在路由节点中输入命令db.user.stats(),可以查看具体状态,如下

备注

一、在实际测试中,我发现该状态是改变的

1、当未有数据插入时,shards中只有shard0000;此时shard0001中无test数据库

2、当插入数据到一定量时,shards中有shard0000和shard0001,但此时实际的shard0001的数据库只是建立了test库和user集合,无数据

3、当再次插入数据时,shard0001中的test库开始可以查到数据

个人理解如下

mongodb在shard时会有一个预留量,即当第一个chunk快用完时,会提前准备新的chunk。

二、登陆config节点可以查找相关的配置表,在其config数据库下


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号