sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB:forringet forespørgselsydeevne

1.:Dine forespørgsler er alt for komplicerede. Bruger $elemMatch alt for ofte. Andet:Hvis du kan inkludere din shard-nøgle i forespørgslen, vil det forbedre hastigheden drastisk.

Jeg vil optimere dine forespørgsler for dig:

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()

Nederste linje er dette:medtag din shard-nøgle, hver gang er en tidsbesparelse.

Det kan endda spare tid at gå gennem dine shard-nøgler og foretage den samme forespørgsel flere gange.



  1. MongoDB &Mongoose får adgang til en database, mens de godkender mod en anden (NodeJS, Mongoose)

  2. Tilgange til lagring af geospatiale data i Redis

  3. Stack-vinduet viser intet output ved fejlretning af Redis Lua-scripts med ZeroBrane

  4. Brug resultat fra mongodb i shell-script