sql >> Base de Datos >  >> NoSQL >> MongoDB

Almacenamiento en caché de resultados de consultas repetitivas en MongoDB

No sé quién dijo eso, pero MongoDB tiene una forma de almacenar en caché las consultas; de hecho, utiliza la LRU del sistema operativo para almacenar en caché, ya que no administra la memoria por sí mismo.

Siempre que su conjunto de trabajo se ajuste a la LRU sin que el sistema operativo tenga que buscarlo o cambiarlo constantemente, debería estar leyendo esta consulta de la memoria la mayoría de las veces. Entonces, sí, MongoDB puede almacenar en caché, pero técnicamente no lo hace; el sistema operativo lo hace.

Los mecanismos de almacenamiento en caché para resolver este tipo de problemas son los mismos en la mayoría de las tecnologías, ya sea por MongoDB o SQL. Por supuesto, esto solo importa si es un problema, probablemente estés micro-optimizando si me preguntas; a menos que obtenga tráfico de tipo Facebook, Google o Youtube.

El tema del almacenamiento en caché abarca un tema amplio que va desde el almacenamiento en caché de consultas en MongoDB/Memcache/Redis, etc., hasta el almacenamiento en caché de HTML y otros recursos web para hacer el menor trabajo posible en el extremo del servidor.

Su escenario, personalmente como dije, suena como si estuviera pensando mal acerca de la potencia informática desperdiciada. Incluso si almacenara en caché esta consulta en otra colección/tecnología, probablemente usaría la misma cantidad de energía y recursos para recuperar el resultado de esa tecnología que si simplemente no se molestara. Sin embargo, esa suposición se reduce a que tenga los índices, el esquema, la configuración, etc. correctos.

Le recomiendo que lea algunos enlaces sobre un buen diseño de esquemas y creación de índices:

Sí, creo que al tratar de preocuparse por el almacenamiento en caché de consultas, está optimizando prematuramente, especialmente si no desea despegar, lo que sería el 90% de la carga en su servidor cada vez; cargando la página misma.

Me concentraría en su esquema e índices y luego me preocuparía por el almacenamiento en caché si realmente lo necesita.