[英]Mongoose Query on Index Slow
我有一個查詢,該查詢經常被發現很慢。 盡管沒有復合索引,但它在我查詢的每個數據點上都有索引。
查詢如下所示:
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);
});
簡單查詢,該查詢除去價格后大約有5萬條記錄。 價格已建立索引,我確定是100%確定的。 我已經通過多種方式對其進行了驗證。 如果我取消價格,此查詢將在200毫秒內完成,而價格大約需要20秒。 我已經測試了多個價格范圍,它掃描的前10個應該匹配。 關於此查詢是否存在未使用索引的問題?
另外,服務器現在大約是該數據庫所需資源的3倍,這不是服務器問題。 整個數據庫被加載到ram中。
節點6.11.2,Mongoose:4.10.8,mongodb-core:2.1.1 MongoDb:3.4
事實證明,我們需要一個用於價格和createdOn的復合索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.