簡體   English   中英

貓鼬索引慢查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM