MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB :performances des requêtes dégradées

1er :Vos requêtes sont trop compliquées. Utiliser $elemMatch trop souvent. 2ème :si vous pouvez inclure votre clé de partition dans la requête, cela améliorera considérablement la vitesse.

Je vais optimiser vos requêtes pour vous :

db.user.find({
     createdAt: {
          $gte: ISODate("2014-12-01"), 
          $lte: ISODate("2014-12-31")
     }
}).explain()

db.user.find({
    'transaction.product':'mobile'
}).explain()

db.user.find({
    'transaction.product':'mobile', 
    firstTransaction:{
       $in:[
           ISODate("2015-01-01"),
           ISODate("2015-01-02")
       ]
    }
}).explain()

L'essentiel est le suivant :incluez votre clé de partition à chaque fois pour gagner du temps.

Cela pourrait même vous faire gagner du temps en parcourant vos clés de partition et en faisant la même requête plusieurs fois.