Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/
Administración
/

Rendimiento de los queries

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.

Cuando envía un query a MongoDB, el servidor interpreta el query, compila un plan del query para determinar la mejor manera de recuperar los datos, ejecuta el plan y luego devuelve los resultados al cliente.

Para mejorar el rendimiento de las queries, considera cómo MongoDB compila y ejecuta el plan para tus queries específicas e identifica áreas problemáticas, como campos que se beneficiarían de un índice, filtros ineficientes y problemas a escala.

Los Índices almacenan valores de campos individuales o conjuntos de campos de una colección en una estructura de datos separada. En las operaciones de lectura, permiten que MongoDB realice una búsqueda en el índice para identificar documentos relevantes en lugar de en toda la colección. En las operaciones de escritura, MongoDB debe tanto guardar el cambio en la colección como actualizar el índice.

En muchos casos, el uso de índices puede acelerar tu query. Esta mejora depende de qué campos estén indexados y de qué utilicen sus consultas como filtros. Por ejemplo, si una consulta no aplica proyecciones ni filtros, un escaneo de colección puede ser más eficiente que un escaneo de índice.

Para más información, consulte Indexes.

El Atlas perfilador del query ayuda a diagnosticar y supervisar queries de lenta ejecución utilizando datos de registro de tu clúster. Agrega, filtra y visualiza estadísticas de rendimiento en una gráfica de dispersión a través de la interfaz Query Insights.

Puede encontrar esta visualización más cómoda para identificar consultas lentas y valores atípicos de desempeño que la Database Profiler.

Con el perfilador del query, obtienes una visión macro de la carga de tu aplicación. Esto puede ayudarte a identificar qué consultas son lentas y proporcionar algunas ideas sobre cómo puedes mejorar su rendimiento, tales como:

  • Cuánto tiempo tarda en ejecutarse la query

  • El número de documentos examinados por la query

  • Si la consulta utiliza un índice

Para obtener más información, consulte Supervise el rendimiento de las querys con el perfilador del query.

El perfilador de base de datos recopila información detallada sobre las queries que se ejecutan en MongoDB, la cual almacena en el restringido system.profile colección.

Importante

El perfilador de base de datos puede afectar el rendimiento de la base de datos y el uso del disco. Considere las implicaciones de desempeño y almacenamiento antes de habilitarlo en una implementación de producción.

Para más información, consulta Sobrecarga del perfilador.

Con el perfilador de base de datos, se obtiene una vista micro de las consultas lentas en la carga actual de la aplicación. Esto puede proporcionar algunas perspectivas sobre cómo mejorar el rendimiento de las consultas, como:

  • Cuánto tiempo tarda en ejecutarse la query

  • El número de documentos examinados por la query

  • Si la consulta utiliza un índice

Para obtener más información, consulta Salida del perfilador de base de datos.

Nota

El perfilador de base de datos no está disponible en mongos. Si necesitas encontrar queries lentas en un clúster, consulta Supervisar las operaciones actuales.

La etapa de agregación $currentOp devuelve información sobre las operaciones que se están ejecutando actualmente en un servidor o clúster de MongoDB. $currentOp puede ayudarte a identificar problemas de rendimiento, como:

  • Cuánto tiempo tarda en ejecutarse la query

  • Si la consulta está esperando un bloqueo

  • Si la consulta utiliza un índice

Para obtener más información, consulte Supervisar Slow Queries.

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 explain() puede ayudarlo a identificar posibles problemas con consultas específicas, tales como:

  • Filtros ineficientes

  • Uso ineficaz del índice

  • Problemas potenciales de rendimiento a escalar

Para más información, consulte Explicación de consultas lentas.

La etapa de agregación $collStats proporciona información estadística sobre colecciones específicas y su uso. Podría encontrar esto ú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 promedio de los documentos

La etapa de agregación $indexStats proporciona información estadística sobre el uso del índice por una colección. Esto puede ayudarlo a identificar problemas específicos de uso de índices, como:

  • Si las consultas utilizan el índice y con qué frecuencia

  • Si un índice es redundante

En esta página