Mongo跳过限制汇总性能

时间:2018-09-06 04:30:42

标签: mongodb aggregation-framework

谁能解释为什么这个查询

db.factfind.find().sort({ _id:1 }).skip(5000).limit(10)

比我数据库中的查询快60(1秒比60秒)倍。

db.factfind.aggregate( [
    {"$sort": {"_id": 1}}
    , 
    {"$skip": 5000}
    ,
    {"$limit": 10} ] )

如果有帮助的话,Wired Tiger的9GB磁盘上有32GB很大的磁盘空间,并且有很多深度嵌套的文档数组。

更新

我想我可能已经找到了我自己问题的答案。从历史上看,在mongo中分页速度很慢(我正在使用3.6),您进入的集合越远。如果我将汇总更改为此。

db.factfind.aggregate( [
    {"$sort": {"_id": 1}}
    , 
    {"$skip": 50}
    ,
    {"$limit": 10} ] )

随着我$skip的增加,速度会越来越快,并且逐渐变慢,因此也许在{3.6中,$skip的效率低下已被固定,而db.find()却没有被固定

0 个答案:

没有答案
相关问题