博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MonoDB的数据准备
阅读量:6567 次
发布时间:2019-06-24

本文共 1574 字,大约阅读时间需要 5 分钟。

 

首先是数据的录入,为了分析我们服务器集群的性能,需要准备大量的用户数据,幸运的是mtools提供了mgenerate方法供我们使用。他可以根据一个数据模版向 MongoDB 中插入任意条 json 数据。下面的 json 结构是我们在例子中需要使用的数据模版

{

"user": {

"name": {

"first": {"$choose": ["Liam", "Aubrey", "Zoey", "Aria", "Ellie", "Natalie", "Zoe", "Audrey", "Claire", "Nora", "Riley", "Leah"] },

"last": {"$choose": ["Smith", "Patel", "Young", "Allen", "Mitchell", "James", "Anderson", "Phillips", "Lee", "Bell", "Parker", "Davis"] }

},

"gender": {"$choose": ["female", "male"]},

"age": "$number",

"address": {

"zip_code": {"$number": [10000, 99999]},

"city": {"$choose": ["Beijing", "ShangHai", "GuangZhou", "ShenZhen"]}

},

"created_at": {"$date": ["2010-01-01", "2014-07-24"] }

}

}

把它保存为一个叫user.json的文件中,然后使用mgenerate插入一百条随机数据。随机数据的格式就按照上面json文件的定义。你可以通过调整--num的参数来插入不同数量的 Document(Link to mgenerate wiki)

mgenerate user.json --num 1000000 --database test --collection users --port 38017

上面的命令会像test数据库中users collection 插入一百万条数据。在有些机器上,运行上面的语句可能需要等待一段时间,因为生成一百万条数据是一个比较耗时的操作,之所以生成如此多的数据是方便后面我们分析性能时,可以看到性能的显著差别。当然你也可以只生成十万条数据来进行测试,只要能够在你的机器上看到不同find语句的执行时间差异就可以

插入完数据之后,我们想看一下刚刚插入的数据在服务器集群中是如何分配的。通常,可以通过sh.status() MongoDB shell 命令查看。不过对于一套全新的集群服务器,再没有切分任何 collection 之前,我们是看不到太多有用的信息。不过,可以通过 explain 一条查询语句来看一下数据的分布情况。这里不得不强调一下在进行数据性能分析时一个好的 IDE 对工作效率有多大的影响,我选择 dbKoda 作为 MongoDB IDE 主要原因是他是目前唯一一款对 MongoDB Shell 的完美演绎,对于 MongoDB Shell 命令不太熟悉的开发人员来说尤为重要,幸运的是这款 IDE 还支持 Windows/Mac/Linux 三种平台,基本上覆盖了绝大多数操作系统版本。下面是对刚才建立的一百万条 collection 的一次 find explain 结果。(对于 Explain 的应用,大家可以参考我的另外一片文章: MongoDB 自带的 Explain 功能提高检索性能?)

 

来自:

转载于:https://www.cnblogs.com/time-is-life/p/8341897.html

你可能感兴趣的文章
/etc/security/limits.conf
查看>>
js 框架
查看>>
android 实现ListView中添加RaidoButton单选
查看>>
Oracle数据库:启动操作
查看>>
linux下的防火墙
查看>>
SNAT与DNAT
查看>>
Linux 修改密码“ Authentication token manipulation err”
查看>>
openstack
查看>>
Lync Server 2013 安装体验(一)
查看>>
EBB-24、DNS2
查看>>
css3做的nav
查看>>
汇编笔记
查看>>
点击qq、点击邮箱01
查看>>
时间处理总结(三)javascript与WCF
查看>>
Ubantu下安装jdk 教程
查看>>
ActiveMQ入门实例
查看>>
linux安装至少有哪两个分区,各自作用是什么?
查看>>
swoole 安装和简单实用
查看>>
文件系统 第八次迭代 VFS相关说明
查看>>
速读《构建之法:现代软件工程》提问
查看>>