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

Кеширане на повтарящи се резултати от заявки в MongoDB

Не знам кой го е казал, но MongoDB има начин да кешира заявки, всъщност използва LRU на операционната система за кеширане, тъй като самата тя не управлява паметта.

Докато вашият работен набор се побира в LRU, без да се налага операционната система да го извежда или разменя постоянно, вие трябва да четете тази заявка от паметта повечето пъти. Така че, да, MongoDB може да кешира, но технически не го прави; операционната система прави.

Механизмите за кеширане за решаване на този вид проблеми са еднакви за повечето технологии, независимо дали са от MongoDB или SQL. Разбира се, това има значение само ако е проблем, вие вероятно микрооптимизирате, ако питате мен; освен ако не получавате трафик от тип Facebook, Google или Youtube.

Темата за кеширане преминава към огромна тема, която варира от кеширане на заявки в предварително агрегирани MongoDB/Memcache/Redis и т.н. до кеширане на HTML и други уеб ресурси, за да се направи възможно най-малко работа от страна на сървъра.

Вашият сценарий, както казах лично, звучи така, сякаш мислите погрешно за пропиляната компютърна мощност. Дори и да кеширате тази заявка в друга колекция/технология, вероятно ще използвате същото количество енергия и ресурси за извличане на резултата от тази технология, отколкото ако просто не си правите труда. Това предположение обаче се свежда до това, че имате правилните индекси, схема, настройка и т.н.

Препоръчвам ви да прочетете някои връзки за добър дизайн на схема и създаване на индекс:

Да, мисля, че като се опитвате да се тревожите за кеширането на заявки, вие преждевременно оптимизирате, особено ако не искате да излетите, какво би било 90% от натоварването на вашия сървър всеки път; зареждане на самата страница.

Бих се съсредоточил върху вашата схема и индекси и след това ще се тревожа за кеширането, ако наистина имате нужда от него.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 4 начина за изброяване на колекциите в база данни на MongoDB

  2. Влезте с root идентификационни данни в Mongodb контейнер, създаден с помощта на Docker compose

  3. Компресиране на индексен префикс в MongoDB 3.0 WiredTiger

  4. Разбор на дълъг низ на заявка директно към MongoDB (точно както можете в SQL)

  5. MongoParseError:опциите useCreateIndex, useFindAndModify не се поддържат