代码干货 | MongoDB查询优化:从 10s 到 10ms
来源:互联网 发布:淘宝佛珠刀具价格大全 编辑:程序博客网 时间:2024/06/03 18:06
本文来源于阿里云-云栖社区,原文点击这里。
苏先生
反馈线上某条查询很慢(10+ seconds
),语句相当于
db.myColl.find({app:"my_app",requestTime:{$gte:1492502247000,$lt:1492588800000}}).sort({_id:-1}).limit(1)
myColl
这个collection
中的记录内容类似于:
{ "_id" : ObjectId("58fd895359cb8757d493ce60"), "app" : "my_app", "eventId" : 141761066, "requestTime" : NumberLong("1493010771753"), "scene" : "scene01" }{ "_id" : ObjectId("58fd895359cb8757d493ce52"), "app" : "my_app", "eventId" : 141761052, "requestTime" : NumberLong("1493010771528"), "scene" : "scene02" }{ "_id" : ObjectId("58fd895359cb8757d493ce36"), "app" : "my_app", "eventId" : 141761024, "requestTime" : NumberLong("1493010771348"), "scene" : "scene03" }{ "_id" : ObjectId("58fd895359cb8757d493ce31"), "app" : "my_app", "eventId" : 141761019, "requestTime" : NumberLong("1493010771303"), "scene" : "scene01" }{ "_id" : ObjectId("58fd895359cb8757d493ce2d"), "app" : "my_app", "eventId" : 141761015, "requestTime" : NumberLong("1493010771257"), "scene" : "scene01" }{ "_id" : ObjectId("58fd895259cb8757d493ce10"), "app" : "my_app", "eventId" : 141760986, "requestTime" : NumberLong("1493010770866"), "scene" : "scene01" }{ "_id" : ObjectId("58fd895259cb8757d493ce09"), "app" : "my_app", "eventId" : 141760979, "requestTime" : NumberLong("1493010770757"), "scene" : "scene01" }{ "_id" : ObjectId("58fd895259cb8757d493ce02"), "app" : "my_app", "eventId" : 141760972, "requestTime" : NumberLong("1493010770614"), "scene" : "scene03" }{ "_id" : ObjectId("58fd895259cb8757d493cdf1"), "app" : "my_app", "eventId" : 141760957, "requestTime" : NumberLong("1493010770342"), "scene" : "scene02" }{ "_id" : ObjectId("58fd895259cb8757d493cde6"), "app" : "my_app", "eventId" : 141760946, "requestTime" : NumberLong("1493010770258"), "scene" : "scene01" }
相关的索引有:
[ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "myDatabase.myColl" }, { "v" : 1, "key" : { "responseTime" : -1 }, "name" : "idx_responseTime_-1", "ns" : "myDatabase.myColl" }, { "v" : 1, "key" : { "app" : 1, "scene" : 1, "eventId" : -1, "requestTime" : -1 }, "name" : "idx_app_1_scene_1_eventId_-1_requestTime_-1", "ns" : "myDatabase.myColl" }]
慢查询就是在myColl
中查找符合[1492502247000, 1492588800000)
这个时间范围的所有记录,**以下描述中称这条查询为bad query
**。
如果去掉$lt:1492588800000
这个约束条件,查找[1492502247000, +∞)
这个时间范围,就会很快(milliseconds
)。
>>>展开全文
阅读全文
0 0
- 代码干货 | MongoDB查询优化:从 10s 到 10ms
- ARM软件优化,从1s到10ms
- ARM软件优化,从1s到10ms
- EngineerCMS优化算法从2.71s到38ms
- 37. Sudoku Solver : 代码的优化:从1865ms 到 489ms 到最后69ms AC
- MongoDB干货篇之查询
- MongoDB干货篇之查询
- MS查询优化方法
- 【Android高级】高斯模糊效果从319ms到3ms的优化实现
- Android 高斯模糊效果从319ms到3ms的优化实现
- 【LeetCode001算法/编程练习C++】--twoSum //从816ms到16ms的优化过程
- MS Sqlserver 优化--查询相关
- MongoDB干货篇之查询数据
- Mongodb从0到1系列三: 条件查询、大小写
- 纯干货10 强化学习视频教程分享(从入门到精通)
- mongodb查询分页优化
- mongodb查询优化
- mongodb查询分页优化
- JavaScript:gallery
- 不能将参数 1 从“CString”转换为“const char *”
- c语言引用传递的机制
- malloc free /new delete区别
- Java几种单例的写法
- 代码干货 | MongoDB查询优化:从 10s 到 10ms
- 如何远程连接非默认端口SQL Server
- 多进程与多线程
- 矩阵相乘
- SpringMVCTest/hello 能进入当controller hello方法却在返回值时报错及解决办法
- POJ
- Linux 模块编译
- Ajax异步提交List对象,SpringMvc如何接收?
- C Primer Plus(第六版)第六章编程练习答案。