相关疑难解决方法(0)

即使在索引字段上,MongoDB排序也非常慢

所以我今天遇到了这个问题,我的MongoDB查询极其缓慢和超时的地方.我发布了这个问题 - MongoDB记录太多了?他的建议是对的,我必须确保索引并消除不区分大小写.我在Mongo shell中试过它,效果很好.

然而,当我通过PHP运行它时,它仍然是相同的:(然后我意识到查询对"id"(不是_id)字段进行了排序,当我删除它时,事情变得非常快.但是排序,它真的很慢.我已经在id字段上有一个索引.这是查询btw:

db.tweet_data.find({ 
...     $or: 
...         [ 
...             { in_reply_to_screen_name: /^kunalnayyar$/, handle: /^kaleycuoco$/, id: { $gt: 0 } }, 
...             { in_reply_to_screen_name: /^kaleycuoco$/, handle: /^kunalnayyar$/, id: { $gt: 0 } } 
...         ], 
...     in_reply_to_status_id_str: { $ne: null } 
...     
...     } ).sort({id:-1})explain()
Run Code Online (Sandbox Code Playgroud)

所以我的索引是:(不是复合的){ {id:-1} , {handle:1}, {in_reply_to_screen_name:1} } 经过一些阅读后,我意识到它应该是一个复合索引,我尝试了两种变化,但没有成功:1.2 {handle:1, in_reply_to_screen_name:1, id:-1} .{id:-1,handle:1, in_reply_to_screen_name:1}

我不确定我哪里出错了,但我很确定问题是在这里索引.我太嗡嗡声了,无法理解索引的顺序和字段

sorting indexing mongodb

5
推荐指数
1
解决办法
3992
查看次数

标签 统计

indexing ×1

mongodb ×1

sorting ×1