查詢代碼:
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條而已
找到原因了,是因為設定了帳號密碼的原因,我看每次請求mongo都會去驗證帳號密碼,導致時間用的很長,去掉就下降到30ms左右了
是否可以考慮列印出在2個不同OS的MongoDB查詢的時候的執行計劃,比較一下兩邊的執行計劃。
你的linux系統是32位還是64位的