Los motores de ejecución de bases de datos han experimentado una transformación fundamental en la última década. El modelo tradicional Volcano, introducido en la década de 1990, procesa filas una por una a través de un pipeline de iteradores basado en pull. Aunque elegante en diseño, este enfoque sufre de una mala utilización de la caché de la CPU y una alta sobrecarga de interpretación. Los motores de ejecución vectorizados modernos abordan estas limitaciones procesando lotes de datos orientados a columnas en bucles ajustados, logrando mejoras de rendimiento de órdenes de magnitud. Este cambio es central para el auge de las bases de datos analíticas de alto rendimiento como ClickHouse, DuckDB y los sistemas basados en Apache Arrow. Las técnicas clave incluyen diseños de datos compatibles con SIMD, fusión de operadores a nivel de lote y eliminación de llamadas a funciones por tupla. Para los ingenieros que construyen o ajustan infraestructura de datos, comprender esta evolución es crítico para diseñar sistemas que puedan manejar análisis a escala de petabytes de manera eficiente. El artículo proporciona una comparación arquitectónica clara y conocimientos prácticos sobre la implementación de ejecución vectorizada sin depender de código propietario.
Este artículo explora la evolución de los motores de ejecución de bases de datos desde el modelo clásico de iterador Volcano hasta el procesamiento vectorizado en columnas, explicando cómo el procesamiento por lotes de datos en columnas mejora drásticamente la eficiencia de la caché y reduce la sobrecarga. Proporciona una inmersión técnica profunda en los principios de diseño detrás de bases de datos analíticas modernas como ClickHouse y DuckDB, lo que lo hace valioso para ingenieros que optimizan el rendimiento de consultas.