Rendimiento del Pipeline de Agregación de MongoDB: Análisis de la Selección del Plan de Consulta y el Comportamiento del Optimizador a Través de Versiones y Escalas de Colección
Autores: Ivanov, Rosen
Idioma: Inglés
Editor: MDPI
Año: 2026
Acceso abierto
Artículo científico
2026
Rendimiento del Pipeline de Agregación de MongoDB: Análisis de la Selección del Plan de Consulta y el Comportamiento del Optimizador a Través de Versiones y Escalas de Colección
Categoría
Gestión y administración
Subcategoría
Gestión de la tecnología y la inovación
Palabras clave
Mecanismos
Consultas de la tubería de agregación
MongoDB
Optimizador de Tubería
Rendimiento
Escalabilidad
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 1
Citaciones: Sin citaciones
Este artículo examina cómo MongoDB optimiza las consultas de la tubería de agregación, centrándose en dos mecanismos: un proceso de selección de planes basado en pruebas que ejecuta planes de ejecución candidatos en paralelo y elige el que devuelve más resultados con el menor esfuerzo, y la reescritura de operadores basada en reglas por el Optimizador de Tuberías. El estudio prueba nueve tipos de consultas de agregación en un conjunto de datos sintético de comercio electrónico con 50,000 documentos, utilizando las versiones 6.0.3 y 8.2.5 de MongoDB en condiciones idénticas. Para cada consulta, se evalúan todas las ordenaciones de operadores válidas junto con el plan de ejecución físico y la salida del Optimizador de Tuberías. Cada prueba se ejecuta 20 veces con la caché de planes borrada antes de cada ejecución. El estudio también prueba la escalabilidad con conjuntos de datos de 150,000 y 250,000 documentos. Se identifican tres casos en los que el optimizador basado en reglas no cumple: sesgo de preferencia IXSCAN a baja selectividad, donde el plan subóptimo es hasta nueve veces más lento que el óptimo (80 ms frente a 699 ms a 250,000 bajo MongoDB 8.2.5), multiplicación de documentos no acotada después de $unwind, y la falta de consideración de la cardinalidad de salida de $group. MongoDB 8.2.5 mejora el rendimiento en la mayoría de los casos en comparación con la versión 6.0.3. Las consultas $match + $group se ejecutan hasta un 28% más rápido. Las consultas que dependen de IXSCAN mejoran hasta un 18%. Las operaciones de proyección no acotadas se ejecutan más lentamente en MongoDB 8.2.5 en todos los tamaños probados. La desaceleración es del +23% a 50,000, +3% a 150,000 y +14% a 250,000, lo que indica un cambio en la ruta de ejecución de proyección entre versiones.
Descripción
Este artículo examina cómo MongoDB optimiza las consultas de la tubería de agregación, centrándose en dos mecanismos: un proceso de selección de planes basado en pruebas que ejecuta planes de ejecución candidatos en paralelo y elige el que devuelve más resultados con el menor esfuerzo, y la reescritura de operadores basada en reglas por el Optimizador de Tuberías. El estudio prueba nueve tipos de consultas de agregación en un conjunto de datos sintético de comercio electrónico con 50,000 documentos, utilizando las versiones 6.0.3 y 8.2.5 de MongoDB en condiciones idénticas. Para cada consulta, se evalúan todas las ordenaciones de operadores válidas junto con el plan de ejecución físico y la salida del Optimizador de Tuberías. Cada prueba se ejecuta 20 veces con la caché de planes borrada antes de cada ejecución. El estudio también prueba la escalabilidad con conjuntos de datos de 150,000 y 250,000 documentos. Se identifican tres casos en los que el optimizador basado en reglas no cumple: sesgo de preferencia IXSCAN a baja selectividad, donde el plan subóptimo es hasta nueve veces más lento que el óptimo (80 ms frente a 699 ms a 250,000 bajo MongoDB 8.2.5), multiplicación de documentos no acotada después de $unwind, y la falta de consideración de la cardinalidad de salida de $group. MongoDB 8.2.5 mejora el rendimiento en la mayoría de los casos en comparación con la versión 6.0.3. Las consultas $match + $group se ejecutan hasta un 28% más rápido. Las consultas que dependen de IXSCAN mejoran hasta un 18%. Las operaciones de proyección no acotadas se ejecutan más lentamente en MongoDB 8.2.5 en todos los tamaños probados. La desaceleración es del +23% a 50,000, +3% a 150,000 y +14% a 250,000, lo que indica un cambio en la ruta de ejecución de proyección entre versiones.