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.
Puede que esta visualización le resulte más conveniente para identificar consultas lentas y valores atípicos de rendimiento que la Perfilador 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.
Nota
El generador de perfiles de base de datos no está disponible en. Si necesita detectar consultas lentas en un clúster fragmentado,mongos consulte Supervisar operaciones actuales.
Monitorear las operaciones actuales
La $currentOp etapa de agregación devuelve información sobre las operaciones que se están ejecutando actualmente en un servidor o clúster de MongoDB. $currentOp puede ayudarle a identificar problemas de rendimiento, como:
Cuánto tiempo tarda en ejecutarse la consulta
Si la consulta está esperando un bloqueo
Si la consulta utiliza un índice
Para obtener más información,consulte Supervisar consultas lentas.
Explicar
El método explain() recupera información sobre el plan del query y las estadísticas de ejecución sobre los queries y los pipelines de agregación. Está disponible para su uso con estos métodos de consulta:
El método puede ayudarle a identificar posibles problemas con consultas específicas,explain() como:
Filtros ineficientes
Uso ineficaz del índice
Posibles problemas de rendimiento a escala
Para obtener más información, consulte Explicar las consultas lentas.
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