MONGODB 数据库文件读取的优化
上线不久的一个项目,突然反映速度变得慢了很多。
测试插入数据:
> for (i = 1; i <= 100000; i++){
...
... db.test_customer.insert({
... "_id" : i,
... "user_id" : i
(30个字段)
})
测试插入结果如下:
> db.test_customer.find({},{_id:1,create_dt:1}).sort({_id:-1}).limit(2)
{ "_id" : 11176, "create_dt" : ISODate("2014-07-22T03:10:10.435Z") }
{ "_id" : 11175, "create_dt" : ISODate("2014-07-22T03:10:10.420Z") }
> db.test_customer.find({},{_id:1,create_dt:1}).sort({_id:1}).limit(2)
{ "_id" : 1, "create_dt" : ISODate("2014-07-22T03:01:23.935Z") }
{ "_id" : 2, "create_dt" : ISODate("2014-07-22T03:01:24.187Z") }
>
看到插入的时间差,1万多条记录。花了10分钟了。
怎么会这么慢呢。
后使用 mongotop 查看,访问集中在一个文档的读写中。
在使用另一个mongod 进程测试插入数据,发现 同样的代码,插入数据是正常的。1万数据也就几秒。
使用此方法排除了服务器硬件及服务器配置的问题。
mongod -port [otherport] dbpath=/otherpath/otherdb
分析怀疑可能是数据库文件读写数据的瓶颈。
决定把访问读写特别多的那个 文档 【表】 分到另建立的一个数据库中去。
完成后,再测试插入。
再看插入的数据:
> db.test_customer.find({},{create_dt:1}).sort({_id:1}).limit(2)
{ "_id" : 1, "create_dt" : ISODate("2014-07-22T10:06:51.502Z") }
{ "_id" : 2, "create_dt" : ISODate("2014-07-22T10:06:51.509Z") }
> db.test_customer.find({},{create_dt:1}).sort({_id:-1}).limit(2)
{ "_id" : 10000, "create_dt" : ISODate("2014-07-22T10:06:58.016Z") }
{ "_id" : 9999, "create_dt" : ISODate("2014-07-22T10:06:58.015Z") }
>
可以看到 只用了7秒,比以前好多了。
看来还是有文件读写瓶颈。能分开的数据,还是分成多个数据库最好。
MONGODB 数据库文件读取的优化相关推荐
- SPSS数据文件读取
简单地说,数据分析就是数据进行分析,从专业上说,数据分析就是依据分析目的,用适当的统计分析及工具,对收集来的数据进行处理与分析,提取有价值的信息,发挥数据作用,为企业的营销.战略的制定提供帮助和支持. ...
- .dat数据文件怎么打开_SPSS统计分析,之一 SPSS数据文件读取
简单地说,数据分析就是数据进行分析,从专业上说,数据分析就是依据分析目的,用适当的统计分析及工具,对收集来的数据进行处理与分析,提取有价值的信息,发挥数据作用,为企业的营销.战略的制定提供帮助和支持. ...
- CVE-2021-43798 Grafana 未经授权的任意文件读取漏洞
CVE-2021-43798 Grafana 未经授权的任意文件读取漏洞 目录 漏洞原理 漏洞信息 受影响版本 FOFA搜集相关资产 漏洞分析&漏洞复现 解决方案 漏洞原理 Grafana是一 ...
- Mongodb数据库转换为表格文件的库
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 却嫌脂粉污颜色,淡扫蛾眉朝至尊. ...
- php如何从mongo获取视频文件,使用mongodb对文件(图片、音频、视频)的存储、读取操作...
使用mongodb对文件(图片.音频.视频)的存储.读取操作 实现代码示例: package mongo.util; import java.io.File; import java.io.IOExc ...
- mongodb数据库扩展名_MongoDB文件型数据库
初始MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库 ...
- 怎样读取服务器上的数据库文件,如何读取服务器的数据库文件
如何读取服务器的数据库文件 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 本手 ...
- c#大文件读取和写入数据库
c#大文件读取和写入数据库(带进度条的源代码) 最近一个项目需要将大文件写入和读取到数据库,觉得可能很多人也需要相关得东西,所以就将代码帖出来 protected int state = 0; //表 ...
- php如何导入大文件数据库,PHP读取CSV大文件导入数据库的示例
文章详细介绍了csv文件在php中快速导入到mysql数据库中的例子,虽然从最简单的几百MB的到最后使用插件实现几个GB数据导入中间有一些嗑碰了,但结果还是好的. 对于数百万条数据量的CSV文件,文件 ...
最新文章
- 云米冰箱能控制扫地机器人_用冰箱就能掌控全屋家电?云米21Face 428L确实可以...
- ASP.NET 2.0 中配合 Master Page 使用的优化 CSS 模型
- 单片机c语言程序设计实训报告,(整理)单片机C语言程序设计实训100例.doc
- Testlink使用心得
- c/c++ 两种文件流用法
- Mysql数据库(三)——mysql数据库高级操作
- springboot改文件头_SpringBoot图文教程4—SpringBoot 实现文件上传下载
- php 枚举类型比较,枚举的比较-python编程入门系列图文教程-PHP中文网教程
- Android 亮屏速度分析
- 多场景下的AI疫情防控“天网”:解读云边端联动下的全栈 AI 技术
- python中函数分为哪四类_Python函数参数分类原理详解
- jieba源码分析(一)
- Thread+Handler 线程 消息循环(转载)
- 帝国cms会员注册页跳过选择注册会员类型
- c语言单循环赛制,循环赛日程安排问题(分治法)
- 二元线性回归最小二乘法公式推导
- 解决iconfont 图标不显示问题
- 计算机语言工资排行,Python位居编程语言薪资排行榜前列!风变编程打造职场竞争力...
- 2021中国开源年会无锡城市分会场开源点亮无锡
- 关于服务器基本概念汇总