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

¿Hay alguna manera de obligar a mongodb a almacenar cierto índice en ram?

No. MongoDB permite que el sistema administre lo que está almacenado en la RAM.

Dicho esto, debería poder mantener el índice en la RAM ejecutando consultas en los índices (consulte sugerencia de consulta ) periódicamente para evitar que se vuelvan obsoletos.

Referencias útiles:

Además, Kristina Chodorow brinda esta excelente respuesta sobre la relación entre los índices de MongoDB y la RAM

ACTUALIZACIÓN:

Después de la actualización que proporciona la salida .explain(), veo lo siguiente:

  • La consulta está alcanzando el índice.
  • nscanned es el número de elementos (documentos o entradas de índice) examinados.
  • nscannedObjects es la cantidad de documentos escaneados
  • n es el número de documentos que coinciden con los criterios especificados
  • su conjunto de datos es de 300393 entradas, que es el número total de elementos en el índice y los resultados coincidentes.

Puede que esté leyendo esto mal, pero lo que estoy leyendo es que todos los elementos de su colección son resultados válidos. Sin conocer sus datos, parecería que cada elemento contiene la etiqueta "avi". La otra cosa que esto significa es que este índice es casi inútil; los índices brindan el mayor valor cuando trabajan para reducir el campo resultante tanto como sea posible.

De MongoDB "Consejos de indexación y preguntas frecuentes " página: