MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB:obniżona wydajność zapytań

1. Twoje zapytania są zbyt skomplikowane. Używanie $elemMatch zbyt często.2nd:jeśli możesz dołączyć swój klucz shard w zapytaniu, drastycznie poprawi to szybkość.

Zamierzam zoptymalizować Twoje zapytania:

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

Konkluzja jest taka:dołącz swój klucz odłamkowy za każdym razem, aby zaoszczędzić czas.

Może nawet zaoszczędzić czas na pętlę przez klucze fragmentów i wielokrotne wykonywanie tego samego zapytania.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ustawianie połączenia MongoDB z Airflow

  2. Robienie sumy za pomocą frameworka agregacji mongo db

  3. Jak czytać z MongoDB

  4. Wydajność MongoDB:uruchamianie agregacji MongoDB na serwerach pomocniczych

  5. Mongoose nie wypełnia (.populate()) w wersji produkcyjnej (Heroku), ale działa w trybie lokalnym