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

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.

  • Encontrar queries lentas

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 considerar que esta visualización es más conveniente para identificar consultas lentas y valores atípicos de rendimiento que el perfilador de base de datos.

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.

Los métodos find() y aggregate() proporcionan un método explain(), que se puede utilizar para recuperar el plan del query y las estadísticas de ejecución de una query o operación de agregación en particular.

El método explain() permite identificar posibles problemas con queries específicas, como:

  • Filtros ineficientes

  • Uso ineficaz del índice

  • Problemas potenciales de rendimiento a escalar

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

Volver

Optimización del rendimiento

En esta página