MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB:влошена производителност на заявките

1-во:Вашите запитвания са прекалено сложни. Твърде често използване на $elemMatch. 2-ро:ако можете да включите своя shard ключ в заявката, това драстично ще подобри скоростта.

Ще оптимизирам вашите заявки вместо вас:

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

Изводът е следният:включването на вашия shard ключ всеки път е спестяване на време.

Може дори да спестите време, за да преминете през вашите shard ключове и да направите една и съща заявка няколко пъти.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Преданият аргумент трябва да е низ от 24 шестнадесетични символа - мисля, че е така

  2. Многоключови индекси на MongoDB и граници на пресичане на индекси

  3. MongoDB клиент хвърля FileNotFoundException в mscorlib

  4. 3 начина да изберете реда с минимална стойност в SQL

  5. MongoDB $asin