Compilar o no compilar consultas de bases de datos: una inmersión profunda

2025-02-12

Este artículo explora las compensaciones de compilar consultas de bases de datos. Los intérpretes de consultas tradicionales luchan con la velocidad de los modernos SSD NVMe, lo que lleva a importantes cuellos de botella de rendimiento. La compilación de consultas ofrece mejoras sustanciales de velocidad, especialmente para cargas de trabajo OLAP. Sin embargo, el tiempo de compilación y los desafíos de optimización crean acantilados de rendimiento impredecibles. Los intérpretes vectorizados, a la inversa, son más fáciles de construir, depurar y ofrecen un rendimiento más consistente. El artículo contrasta esto con los motores de navegador JavaScript/Wasm, que utilizan un enfoque de compilación por niveles (intérprete, compilador de línea base, compilador optimizador) para lograr una compensación de rendimiento suave. El autor propone un enfoque similar para las bases de datos, sugiriendo un compilador de línea base como componente clave. Se exploran varias estrategias de implementación, incluyendo 'copiar y pegar' y la compilación Wasm. En última instancia, el artículo argumenta que construir un compilador de línea base no es prohibitivamente difícil y ofrece perspectivas sobre las direcciones futuras.