mongodb组合索引优化问题

mmmw 发布于 2013/06/27 13:59
阅读 1K+
收藏 1

最近在优化一个接口,数据是从mongodb里获取的,查询时间平均在1.5秒,数据总量在100W左右,表中大概有25个字段,现在想对这个查询接口进行优化,提升查询速度。

查询条件:

{type:1,status:5,score:{$gte:5},sitemapId:{$in:[38621,44,46,38820,121337,111824,2,30707,123920,40380,122106,122107,122108]}}

排序:通过时间降序排列{displayTime:-1}

获取数据量为:20

解释一下这里的查询条件:type值有多个,这里只取type=1;status值范围为1-5,这里取status=5;score值范围为1-10,这里取score>5的值;sitemapId值为[38621,44,46,38820,121337,111824,2,30707,123920,40380,122106,122107,122108]中的任意个

附上explain信息:

可以看到查询使用到了索引,但是时间还是有点长,想求教一下该怎么对这个进行优化。谢谢

http://www.php230.com/category/mysql/190.html

加载中
0
黄杰忠
这个查询使用了scanAndOrder,该操作会消耗大量内存cpu资源,因为排序是在内存中执行的。复合索引的顺序改下可能可以解决( mongodb 复合索引字段顺序: 精确查找的字段,可能排序的字段,会查询某个范围的字段(避免使用 scanAndOrder  , scanAndOrder  会在内存中执行,而且慢,而且耗费CPU ),具体可以看看这篇文章 http://blog.mongolab.com/2012/06/cardinal-ins/
0
flyingmo
flyingmo
这是什么客户端工具,有linux版本吗?
0
mmmw
mmmw

引用来自“默晓飞”的答案

这是什么客户端工具,有linux版本吗?
Mongo VUE
0
lipengHeke
lipengHeke
索引顺序需要和查询顺序一样,
返回顶部
顶部