关于mongodb的耗时问题

查询代码:

console.time('计时器1')
collection.count({}, function(err, count) {
        collection.find({}, {
            limit: num,
            skip: (data.page - 1) * num
        }).sort({
            time: -1
        }).toArray(function(err, list) {
            mongoDb.close();
            var page = {}
            page["count"] = count
            page["limitNum"] = num
            callback(null, list, page)
            console.timeEnd('计时器1')
        })
    });

图片描述

上图,这是我再window下监控到的mongo耗时时间

下图是我再linux下面的耗时时间
图片描述

为什么同样的查询代码会相差差不多3倍之大?我的数据量就只有67条而已

阅读 4.3k
3 个回答

找到原因了,是因为设置了账号密码的原因,我看每次请求mongo都会去验证账号密码,导致时间用的很长,去掉就下降到30ms左右了

是否可以考虑打印出在2个不同OS的MongoDB查询的时候的执行计划,比较一下两边的执行计划。

你的linux系统是32位还是64位的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进