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

MongoDB:prestazioni delle query ridotte

1°:le tue domande sono eccessivamente complicate. Usare $elemMatch troppo spesso. 2°:se puoi includere la tua chiave shard nella query, migliorerà drasticamente la velocità.

Ottimizzerò le tue query per te:

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

La conclusione è questa:includi la tua shard key ogni volta che fa risparmiare tempo.

Potrebbe anche risparmiare tempo per scorrere le tue chiavi shard ed eseguire la stessa query più volte.