Docs Menu
Docs Home
/

Motor de ejecución de query basado en ranuras

Nuevo en la versión 5.1.

Para buscar y devolver resultados de queries, MongoDB emplea uno de los siguientes motores de consulta:

  • El motor de consulta clásico

  • El motor de ejecución de consultas basado en ranuras, que está disponible para algunas consultas a partir de MongoDB 5.1.

MongoDB selecciona automáticamente el motor para ejecutar la consulta. No es posible especificar manualmente un motor para una consulta específica.

MongoDB puede usar el motor de ejecución de consultas basado en ranuras para un subconjunto de consultas, siempre que se cumplan ciertas condiciones. En la mayoría de los casos, el motor de ejecución basado en ranuras ofrece un mejor rendimiento y menores costos de CPU y memoria en comparación con el motor de consultas clásico.

MongoDB utiliza el motor clásico para consultas que no son elegibles para el motor de ejecución de consultas basado en ranuras.

Nota

A partir de la versión 7.0.17, el motor de ejecución de consultas basado en ranuras ya no está habilitado de forma predeterminada en las versiones de parche de 7.0. Si desea que sus consultas utilicen el motor de ejecución de consultas basado en ranuras, actualice a la versión 8.0, donde está habilitado de forma predeterminada.

MongoDB determina la elegibilidad para usar el motor de ejecución basado en ranuras por consulta y considera la compatibilidad con cada operador y expresión presente en la consulta. Por ejemplo, dos pipelines comunes que usan el motor de ejecución basado en ranuras son las agregaciones con $group $lookup Etapas o. Sin embargo, la compatibilidad con el motor de ejecución basado en ranuras depende de la versión y está en constante evolución.

Para ver si su consulta utilizó el motor de ejecución basado en ranuras, consulte la SecciónDeterminar qué motor de consulta se utilizó.

Hay algunas formas de determinar si se utilizó el motor clásico o el motor de ejecución basado en ranuras para ejecutar una consulta.

Los resultados de explicación de una consulta varían según el motor de consulta utilizado. Por ejemplo, los resultados de explicación de las consultas ejecutadas con el motor de ejecución basado en ranuras incluyen el campo explain.queryPlanner.winningPlan.slotBasedPlan.

Para obtener más información sobre las diferencias en los resultados de explicación entre motores de consulta, consulte Estructura de salida de Explain.

Los mensajes de registro de operaciones lentas incluyen un campo queryFramework que indica qué motor de query ejecutó el query:

  • queryFramework: "classic" indica que el motor clásico ejecutó el query.

  • queryFramework: "sbe" indica que el motor de ejecución de query basado en ranuras ejecutó el query.

Para ver un mensaje de registro de ejemplo para una consulta que utilizó el motor de ejecución basado en ranuras, consulte Operación lenta.

Volver

Sesiones de servidor

En esta página