0
我有一個很頻繁的查詢,我認爲它很慢。它對我查詢的每個數據點都有索引,但沒有複合索引。指數緩慢的貓鼬查詢
查詢看起來像:
ExternalLead.find({
'price': {$gte:3, $lt:6},
"campaign.id":"an id",
createdOn: {$gte: new Date(moment().subtract(10, 'days')),
$lte: new Date(moment().subtract(5, 'min'))
}}).limit(10).sort({_id:-1}).select('_id').exec(function(err, docs){
if (err) console.log(err);
var st = new Date();
console.log(st - s);
});
簡單的查詢,有大約50,000記錄該查詢去除的價格。價格被索引,我100%確定。我已通過多種方式進行驗證。如果我刪除價格,這個查詢在大約200ms內完成,價格大約需要20秒。我已經測試了多個價格範圍,它掃描的前10個應該是一個匹配。有沒有關於這個查詢的東西,它不使用索引?
此外,服務器大約是此數據庫現在需要的3倍,這不是服務器問題。整個數據庫被加載到內存中。
節點6.11.2, 貓鼬:4.10.8, MongoDB的核心:2.1.1 的MongoDB:3.4