MONGODB 数据库文件读取的优化
来源:互联网 发布:淘宝刷客究竟犯不犯法 编辑:程序博客网 时间:2024/06/03 22:03
上线不久的一个项目,突然反映速度变得慢了很多。
测试插入数据:
> 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") }
{ "_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 数据库文件读取的优化
- Android 读取assets的数据库文件
- 读取assets目录下的数据库文件
- Nodejs sqlcipher 读取加密的 sqlite3 数据库文件
- C#读取Foxpro数据库文件
- 读取本地数据库文件
- android直接读取数据库文件
- php中如何读取sqlite数据库文件的数据
- MongoDB ObjectId的优化
- Mongodb的MapReduce优化
- mongodb的优化
- MongoDB的性能优化
- mongoDB的简单存储读取
- php读取oracle中数据库文件
- Android 本地文件读取, 数据库文件备份
- C#读取Microsoft Access数据库文件
- MongoDB组合索引的优化
- MongoDB组合索引的优化
- HDOJ1094
- 4个小启示,给大脑洗洗澡!
- 有没有操作简单的PDF转换器
- hdu 3177 Crixalis's Equipment (贪心)
- {}如何利用B2B平台进行推广
- MONGODB 数据库文件读取的优化
- leetcode 之Spiral Matrix I 和 II 解题思路
- Web of Knowledge应用技巧
- {}如何进行博客推广
- UIColor & 颜色集
- ios8技术调研
- tomcat 6.1.18启动报错IOException while loading persisted sessions: java.io.EOFException
- 09 js继承
- poj 3625 Building Roads(图论:最小生成树)