MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Cache de resultados de consultas repetidas no MongoDB


Não sei quem disse isso, mas o MongoDB tem uma maneira de armazenar consultas em cache, na verdade, ele usa a LRU do sistema operacional para armazenar em cache, pois não faz gerenciamento de memória em si.

Contanto que seu conjunto de trabalho se encaixe na LRU sem que o sistema operacional precise paginá-lo ou trocar constantemente, você deve ler essa consulta da memória na maioria das vezes. Então, sim, o MongoDB pode armazenar em cache, mas tecnicamente não; o SO faz.

Os mecanismos de cache para resolver esse tipo de problema são os mesmos na maioria das tecnologias, sejam eles por MongoDB ou SQL. Claro, isso só importa se for um problema, você provavelmente está micro-otimizando se você me perguntar; a menos que você obtenha tráfego do tipo Facebook ou Google ou Youtube.

O assunto de cache vai para um assunto enorme que varia de consultas de cache em MongoDB/Memcache/Redis pré-agregados, etc., para cache de HTML e outros recursos da Web para fazer o mínimo de trabalho possível no servidor.

Seu cenário, pessoalmente, como eu disse, soa como se você estivesse pensando errado sobre o poder do computador desperdiçado. Mesmo se você armazenar em cache essa consulta em outra coleção/tecnologia, provavelmente usaria a mesma quantidade de energia e recursos recuperando o resultado dessa tecnologia do que se simplesmente não se incomodasse. No entanto, essa suposição se resume a você ter os índices, esquema, configuração etc.

Eu recomendo que você leia alguns links sobre um bom design de esquema e criação de índice:

Sim, acho que ao tentar se preocupar com o cache de consultas, você está otimizando prematuramente, especialmente se não quiser decolar, o que seria 90% da carga em seu servidor a cada vez; carregando a página em si.

Eu me concentraria em seu esquema e índices e depois me preocuparia com o cache, se você realmente precisar.