Docs Menu
Docs Home
/ /

Caché de consultas

En esta guía, aprenderá sobre el almacenamiento en caché de consultas. La caché de consultas guarda los resultados de consultas de búsqueda y agregación anteriores y los reutiliza en el futuro. Esto evita que Mongoid vuelva a ejecutar las consultas, lo que aumenta el rendimiento de la aplicación y reduce la carga de la base de datos.

En esta sección, aprenderá a habilitar la función de caché de consultas en su aplicación. Puede habilitar la caché de consultas usando el espacio de nombres del controlador o el de Mongoid.

El controlador Ruby proporciona middleware para habilitar automáticamente la caché de consultas para las solicitudes web de Rack y las ejecuciones de trabajos activos. Para ver las instrucciones sobre cómo habilitar automáticamente la caché de consultas, consulte Habilitar la sección de caché de consultas para solicitudes web en rack de la guía de configuración del middleware de caché de consultas.

Nota

El middleware de caché de consultas no se aplica al código que se ejecuta fuera de las solicitudes o trabajos web.

Para habilitar el caché de consultas manualmente para un segmento de código específico, puede ejecutar su código dentro del siguiente bloque:

Mongo::QueryCache.cache do
# Include code here ...
end

Puede habilitar y deshabilitar explícitamente la caché de consultas, pero recomendamos usar el formato de bloque en el ejemplo de código anterior. El siguiente código muestra cómo habilitar y deshabilitar la caché de consultas:

begin
Mongo::QueryCache.enabled = true
# Include code here
ensure
Mongo::QueryCache.enabled = false
end

Llamando al first El método de una clase modelo utiliza un orden ascendente en el campo _id al devolver el resultado. Esto podría generar un comportamiento inesperado si se habilita el almacenamiento en caché de consultas.

Por ejemplo, si se llama al método all en una clase de modelo antes de llamar a first, se podría esperar que el método first usara los resultados almacenados en caché de all. Sin embargo, como Mongoid aplica una ordenación a la segunda llamada, ambos métodos consultan la base de datos y almacenan los resultados en caché por separado.

Para utilizar los resultados almacenados en caché al llamar al método first, llame a all.to_a.first en la clase del modelo, como se muestra en el siguiente código de ejemplo:

Band.all.to_a.first

En el ejemplo anterior, al encadenar el método to_a, se ejecuta la consulta y se convierten los resultados en una matriz en memoria. Posteriormente, el método first simplemente devuelve la primera entrada de la matriz en lugar de ejecutar otra consulta y almacenar los resultados en caché.

Para obtener más información sobre cómo crear criterios de filtro, consulte la guía Especificar una consulta de documento.

Para aprender a personalizar su objetivo de persistencia, consulte la guía de configuración de persistencia.

Volver

Persistir datos de queries

En esta página