sql >> Database >  >> NoSQL >> MongoDB

MongoDB:verslechterde queryprestaties

1e:uw vragen zijn te ingewikkeld. Veel te vaak $elemMatch gebruiken.2e:als u uw Shard-sleutel in de query kunt opnemen, zal dit de snelheid drastisch verbeteren.

Ik ga uw zoekopdrachten voor u optimaliseren:

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

Waar het op neerkomt is dit:voeg elke keer uw Shard-sleutel toe, dit bespaart u tijd.

Het kan zelfs tijd besparen door uw shard-sleutels te doorlopen en dezelfde query meerdere keren uit te voeren.



  1. mongo - kon geen verbinding maken met server 127.0.0.1:27017

  2. PHP kan MongoDB-stuurprogramma niet vinden

  3. monnik versus mangoest voor Mongodb

  4. Een MongoDB-weergave converteren naar een verzameling