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

Buforowanie powtarzających się wyników zapytań w MongoDB

Nie wiem, kto to powiedział, ale MongoDB ma sposób na buforowanie zapytań, w rzeczywistości używa LRU systemu operacyjnego do buforowania, ponieważ sam nie zarządza pamięcią.

Tak długo, jak twój zestaw roboczy pasuje do LRU, a system operacyjny nie musi go ciągle stronicować lub wymieniać, powinieneś czytać to zapytanie z pamięci przez większość czasu. Więc tak, MongoDB może buforować, ale technicznie tak nie jest; system operacyjny.

Mechanizmy buforowania służące do rozwiązywania tego rodzaju problemów są takie same w przypadku większości technologii, niezależnie od tego, czy są to MongoDB, czy SQL. Oczywiście ma to znaczenie tylko wtedy, gdy jest to problem, prawdopodobnie dokonujesz mikrooptymalizacji, jeśli mnie o to pytasz; chyba że otrzymujesz ruch typu Facebook, Google lub Youtube.

Temat buforowania przechodzi do ogromnego tematu, który obejmuje buforowanie zapytań w wstępnie zagregowanym MongoDB/Memcache/Redis itp. do buforowania HTML i innych zasobów internetowych, aby jak najmniej pracy po stronie serwera.

Twój scenariusz, jak powiedziałem, brzmi tak, jakbyś źle myślał o marnowaniu mocy komputera. Nawet gdybyś zbuforował to zapytanie w innej kolekcji/technologii, prawdopodobnie użyłbyś tej samej ilości mocy i zasobów przy pobieraniu wyniku z tej technologii, niż gdybyś po prostu nie zawracał sobie głowy. Jednak to założenie sprowadza się do tego, że masz odpowiednie indeksy, schemat, konfigurację itp.

Polecam przeczytać kilka linków na temat dobrego projektowania schematów i tworzenia indeksów:

Tak, myślę, że próbując martwić się buforowaniem zapytań, przedwcześnie optymalizujesz, zwłaszcza jeśli nie chcesz startować, co stanowiłoby 90% obciążenia serwera za każdym razem; ładowanie samej strony.

Skupiłbym się na twoim schemacie i indeksach, a następnie martwił się o buforowanie, jeśli naprawdę tego potrzebujesz.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. W pymongo MongoDB, jak zrobić count()?

  2. Railsy:Niewłaściwa liczba argumentów (podano 2, oczekiwano 1) MongoID

  3. Liczba dokumentów Mongodb

  4. MongoDb:jak stworzyć właściwy (złożony) indeks dla danych z wieloma polami do przeszukiwania

  5. Zainicjuj dane na zadokowanym mongo