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

Evaluar el rendimiento de las operaciones actuales

Las siguientes secciones describen técnicas para evaluar el rendimiento operativo.

MongoDB proporciona un perfilador de base de datos que muestra las características de rendimiento de cada operación en la base de datos. Utiliza el perfilador para localizar cualquier queries u operación de guardar que se esté ejecutando lentamente. Puedes utilizar esta información, por ejemplo, para determinar qué índices crear.

Las entradas del perfilador y los mensajes de registro de diagnóstico (es decir, mensajes de registro de MongoD/mongos) para operaciones de lectura/escritura incluyen:

  • queryHash para ayudar a identificar consultas lentas con la misma forma del query.

  • planCacheKey para proporcionar más perspectiva sobre la caché del plan del query para queries lentos.

Los miembros secundarios de un set de réplicas ahora registran entradas de oplog que tardan más que el umbral de una operación lenta en aplicarse. Estos mensajes lentos del oplog:

  • Se registran para los secundarios en el diagnostic log.

  • Se documentan en el registro bajo el componente REPL con el texto applied op: <oplog entry> took <num>ms.

  • No depende de los niveles de registro (ya sea a nivel del sistema o del componente)

  • No depende del nivel de perfil.

  • Se ven afectados por slowOpSampleRate.

El perfilador no captura entradas lentas del oplog.

Para obtener más información, consultar Perfilador de base de datos.

El método db.currentOp() informa sobre las operaciones actuales que se ejecutan en una instancia de mongod.

Los métodos cursor.explain() y db.collection.explain() devuelven información sobre la ejecución de una query, como el índice que MongoDB seleccionó para cumplir con la query y las estadísticas de ejecución. Puedes ejecutar los métodos en modo queryPlanner, en modo executionStats o en modo allPlansExecution para controlar la cantidad de información devuelta.

Ejemplo

Para usar cursor.explain() en una query de documentos que coincidan con la expresión { a: 1 }, en la colección denominada records, utilizá una operación similar a la siguiente en mongosh:

db.records.find( { a: 1 } ).explain("executionStats")

A partir de MongoDB 4.2, la salida de explicación incluye:

Para obtener más información, consulta Explicación de resultados, cursor.explain(), db.collection.explain() y Analizar el rendimiento de query.

Volver

Optimización de consultas

En esta página