mongodb聚合查询效率问题

qq_32225113 2015-10-22 05:35:16
服务器配置:
32G内存
CPU:8核
硬盘 raid5
dellR720
系统:centos5.12x64
mongodb版本:3.0.7(2.6试过也是一样)
以上是服务器配置和系统,最近上mongodb数据库,数据量只有500-600W,普通查询速度很正常,但是使用aggregate的group聚合查询,速度就经常在5s+,索引也加了,想请教下可以从哪方面入手排查排查?
语句:

db.getCollection('Statistics').aggregate([
{
"$match": {
"dateline": {
"$gte": 1443628800,
"$lte": 1445270400
},
"tid": {
"$gt": 0
}
}
},
{
"$group": {
"_id": "$tid",
"event1": {
"$sum": 1
}



}
},
{
"$sort": {
"tid": -1
}
},
{
"$skip": 0
},
{
"$limit": 10
}
])


索引:
> db.Statistics.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "dbname.Statistics"
},
{
"v" : 1,
"key" : {
"dateline" : 1
},
"name" : "dateline_1",
"ns" : "dbname.Statistics"
},
{
"v" : 1,
"key" : {
"tid" : 1
},
"name" : "tid_1",
"ns" : "dbname.Statistics"
},
{
"v" : 1,
"key" : {
"tid" : 1,
"dateline" : 1
},
"name" : "tid_1_dateline_1",
"ns" : "dbname.Statistics"
}
]
...全文
4152 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
my_bot 2017-08-03
  • 打赏
  • 举报
回复
索引使用有问题, { "v" : 1, "key" : { "dateline" : 1, "tid" : 1 } } 这样才对, 但是最耗时的操作还是在group 里
xiexie1020 2017-05-04
  • 打赏
  • 举报
回复
关于mongodb聚合查询效率问题,可以参考这个官方的Mongodb论坛 http://forum.foxera.com/mongodb/topic/746/%E8%AF%B7%E6%95%99%E4%B8%8Bmongodb%E8%81%9A%E5%90%88%E6%9F%A5%E8%AF%A2mapreduce%E5%92%8Caggregate%E7%9A%84%E5%8C%BA%E5%88%AB-%E6%80%A7%E8%83%BD%E4%B8%8A%E6%AF%94%E8%BE%83%E4%BD%BF%E7%94%A8%E5%93%AA%E4%B8%AA%E6%9B%B4%E5%A5%BD?un=109
bingfengbali 2016-08-17
  • 打赏
  • 举报
回复
解决了么???
qq_32225113 2015-10-29
  • 打赏
  • 举报
回复
zipcode是? 不是太懂?
rucypli 2015-10-29
  • 打赏
  • 举报
回复
加一个db.Statistics.createIndex( { tid: 1, zipcode: -1 } ) 删掉最后一个索引
qq_32225113 2015-10-28
  • 打赏
  • 举报
回复
都没人的吗??
内容概要:本文从基础到进阶详细介绍了 MongoDB 的文档查询技术。首先回顾了 MongoDB 查询的基础语法,包括 find() 方法、简单查询、多条件查询和指定返回字段。接着深入探讨了比较操作符、逻辑操作符、正则表达式与模糊查询的应用,以及数组和嵌套文档的查询技巧。文中还详细讲解了聚合查询的概念和常用阶段,如 $match、$project、$group、$sort、$limit、$skip、$unwind 和 $lookup。此外,文章强调了索引对查询性能的重要性,介绍了单字段索引、复合索引的创建与优化方法。最后,通过实际应用案例展示了如何使用 MongoDB 进行数据分析,包括统计订单数量和总销售额、查询购买特定商品的用户信息、分析不同地区的用户购买偏好等。 适合人群:具备一定编程基础,特别是对 NoSQL 数据库有一定了解的研发人员,尤其是从事电商、社交网络、物联网等领域开发的技术人员。 使用场景及目标:①帮助开发者高效管理和精准查询海量数据;②解决复杂业务需求下的数据筛选和分析问题;③优化查询性能,提升系统整体效率;④为业务决策提供有力支持,如统计销售业绩、用户行为分析等。 其他说明:本文不仅涵盖了 MongoDB 查询的基础知识,还深入探讨了高级查询技术和性能优化策略。读者可以通过实际案例更好地理解如何将理论应用于实践,从而在实际项目中充分发挥 MongoDB 的优势。随着数据量的增长和业务需求的变化,持续学习 MongoDB 的新技术和新特性将有助于开发者不断提升自己的技能水平,更好地应对未来的挑战。

1,798

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧