【MongoDB】在windows平台下mongodb的分片集群(三)

php中文网
发布: 2016-06-07 16:09:55
原创
1698人浏览过

在上两篇博客中我们分别阐述了分片集群的工作原理以及搭建过程。在本篇博客中我们主要一起分析分片集群的测试结果; 首先看分片集群的各个状态,可以看的出复制集A和B都是正常的: 一、开启分片集合 开启一个数据库上的分片,这是对任何集合进行分片的先决条

在上两篇博客中我们分别阐述了分片集群的工作原理以及搭建过程。在本篇博客中我们主要一起分析分片集群的测试结果;

首先看分片集群的各个状态,可以看的出复制集A和B都是正常的:

\

 

一、开启分片集合

 

开启一个数据库上的分片,这是对任何集合进行分片的先决条件。 假设测试数据库为slidetest.

\\

分片集合定义注意:它看起来和索引定义有几分相似之处,尤其是有那个unique键。在对一个空集合进行分片时候,mongodb会在每个分片上创建一个与分片对应的索引。可以直接连上分片,运行getIndexs()进行验证。可以登陆到3000进行查看。

\

 

二、写入分片集群

一旦完成集合的分片,分片集群就准备就绪了。现在可以向集群写入数据,数据将分布到各个分片上。

Sider
Sider

多功能AI浏览器助手,帮助用户进行聊天、写作、阅读、翻译等

Sider 3159
查看详情 Sider

在4000上初始化数据:

for(var i = 0; i

查看结果:

\

接下来我们检查整个块发生了什么,可以看到有两块,并且他们的最大值不一样。

\

备注:作为BSON类型的边界,$minKey和$maxkey常用于比较操作之中。$minkey总是小雨所有BSON类型,而$maxKey总是大于所有BSON类型。。 MongoDB使用这两个类型来比较块的端点

继续插入数据,假设插入20万条记录,

mongos> sh.status()
--- Sharding Status ---
  sharding version: {
        "_id" : 1,
        "version" : 4,
        "minCompatibleVersion" : 4,
        "currentVersion" : 5,
        "clusterId" : ObjectId("545d9af5340aec0c2272afda")
}
  shards:
        {  "_id" : "shard-a",  "host" : "shard-a/WIN--20141018KO:3000,WIN--20141018KO:3001" }
        {  "_id" : "shard-b",  "host" : "shard-b/WIN--20141018KO:30100,WIN--20141018KO:30101" }
  databases:
        {  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }
        {  "_id" : "slidetest",  "partitioned" : true,  "primary" : "shard-a" }
                slidetest.spreadsheets
                        shard key: { "username" : 1, "_id" : 1 }
                        chunks:
                                shard-b 1
                                shard-a 2
                        { "username" : { "$minKey" : 1 }, "_id" : { "$minKey" : 1 } } -->> { "username" : "albertshao", "_id" : ObjectId("545df80537216b1577de0251") } on : shard-b Timestamp(2, 0)
                        { "username" : "albertshao", "_id" : ObjectId("545df80537216b1577de0251") } -->> { "username" : "albertshao", "_id" : ObjectId("545e062437216b1577de1802") } on : shard-a Timestamp(2, 2)
                        { "username" : "albertshao", "_id" : ObjectId("545e062437216b1577de1802") } -->> { "username" : { "$maxKey" : 1 }, "_id" : { "$maxKey" : 1 } } on : shard-a Timestamp(2, 3)

mongos>
登录后复制
通过上面可以看的出,是利用usename作为块划分键。同时也可以看的出上面总有3块,其中shard-a有两块,shard-b有一块。

我们通过changelog可以看到数据库的迁移:

mongos> db.changelog.count({what:"split"})
2
mongos> db.changelog.count({what:"moveChunk.commit"}).count()
2014-11-08T20:12:09.618+0800 TypeError: Object 1 has no method 'count'
mongos> db.changelog.find({what:"moveChunk.commit"}).count()
1
mongos> db.changelog.find({what:"moveChunk.commit"})
{ "_id" : "WIN--20141018KO-2014-11-08T11:01:40-545df8141603dfc967d0fdcd", "server" : "WIN--20141018KO", "clientAddr" : "127.0.0.1:50644", "time" : ISODate("2014-11-08T11:01:40.826Z"), "what" : "moveChunk.commit", "ns" : "slidetest.spreadsheets", "details" : { "min" : { "username" : { "$minKey" : 1 }, "_id" : { "$minKey" : 1 } }, "max" : { "username" : "albertshao", "_id" : ObjectId("545df80537216b1577de0251") }, "from" : "shard-a", "to" : "shard-b", "cloned" : NumberLong(0), "clonedBytes" : NumberLong(0), "catchup" : NumberLong(0), "steady" : NumberLong(0) } }
mongos>
登录后复制
相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号