Optimiza tus queries de MongoDB para asegurar el mejor rendimiento posible para tu aplicación. Esto puede ocurrir tanto durante el desarrollo como más adelante, a medida que cambien el uso de tus datos y la demanda. A medida que las colecciones crecen, una revisión periódica del rendimiento de las query puede ayudar a determinar cuándo los clústeres necesitan escalar horizontal o verticalmente.
Comportamiento
Cuando envía una consulta a MongoDB, el servidor interpreta la consulta, crea un plan de consulta para determinar cuál es la mejor manera de recuperar los datos, ejecuta el plan y luego devuelve los resultados al cliente.
Para mejorar el rendimiento de las consultas, considere cómo MongoDB crea y ejecuta el plan para sus consultas específicas e identifique áreas problemáticas, como campos que se beneficiarían de un índice, filtros ineficientes y problemas a escala.
Indexes
Los índices almacenan valores de campos individuales o conjuntos de campos de una colección en una estructura de datos independiente. En las operaciones de lectura, permiten a MongoDB buscar en el índice para identificar los documentos relevantes en lugar de en toda la colección. En las operaciones de escritura, MongoDB debe escribir el cambio en la colección y actualizar el índice.
En muchos casos, el uso de índices puede agilizar las consultas. Esta mejora depende de los campos indexados y de los filtros que utilicen las consultas. Por ejemplo, si una consulta no aplica proyecciones ni filtros, un análisis de colección puede ser más eficiente que un análisis de índice.
Para más información, consulte Indexes.
Tareas
Solución de problemas
Soluciones
Detalles
Perfilador del query de Atlas
El Perfilador de Consultas Atlas ayuda a diagnosticar y supervisar consultas de ejecución lenta mediante datos de registro de su clúster. Agrega, filtra y visualiza estadísticas de rendimiento en un gráfico de dispersión a través de la interfaz de Información de Consultas.
Quizás le resulte más conveniente esta visualización para identificar consultas lentas y valores atípicos de rendimiento que el Generador de perfiles de base de datos.
Con el Generador de Perfiles de Consultas, obtienes una visión general de la carga de tu aplicación. Esto te ayuda a identificar qué consultas son lentas y te proporciona información sobre cómo mejorar su rendimiento, como:
Cuánto tiempo tarda en ejecutarse la consulta
El número de documentos examinados por la consulta
Si la consulta utiliza un índice
Para obtener más información,consulte Supervisar el rendimiento de las consultas con el generador de perfiles de consultas.
Database Profiler
El generador de perfiles de base de datos recopila información detallada sobre las consultas que se ejecutan en MongoDB y la almacena en un archivo limitado. system.profile recopilación.
Importante
El generador de perfiles de base de datos puede afectar el rendimiento de la base de datos y el uso del disco. Considere las implicaciones en el rendimiento y el almacenamiento antes de habilitarlo en una implementación de producción.
Para obtener más información, consulte Profiler Overhead.
Con el generador de perfiles de base de datos, obtiene una microvista de las consultas lentas en la carga actual de la aplicación. Esto puede proporcionar información sobre cómo mejorar el rendimiento de las consultas, como:
Cuánto tiempo tarda en ejecutarse la consulta
El número de documentos examinados por la consulta
Si la consulta utiliza un índice
Para obtener más información, consulte Salida del generador de perfiles de base de datos.
Explicar
Los find() métodos y proporcionan un método, que se puede utilizar para recuperar el plan de aggregate() explain() consulta y las estadísticas de ejecución para una consulta o operación de agregación en particular.
El método le permite identificar posibles problemas con consultas específicas,explain() como:
Filtros ineficientes
Uso ineficaz del índice
Posibles problemas de rendimiento a escala
Estadísticas de la colección
La $collStats etapa de agregación proporciona información estadística sobre colecciones específicas y su uso. Esto puede resultarle útil para identificar problemas de índice y rendimiento.
Esto puede proporcionar información útil, como:
Uso de almacenamiento para la colección y sus índices
El tamaño medio de los documentos
Estadísticas del índice
La $indexStats etapa de agregación proporciona información estadística sobre el uso del índice por parte de una colección. Esto puede ayudarle a identificar problemas específicos de uso del índice, como:
Si las consultas utilizan el índice y con qué frecuencia
Si un índice es redundante