Según el propio D. Richard Hipp:
El uso de una máquina virtual en SQLite ha sido un gran beneficio para el desarrollo de la biblioteca. La máquina virtual proporciona una unión nítida y bien definida entre el front-end de SQLite (la parte que analiza las declaraciones SQL y genera el código de la máquina virtual) y el back-end (la parte que ejecuta el código de la máquina virtual y calcula un resultado. ) La máquina virtual permite a los desarrolladores ver claramente y en una forma fácil de leer lo que SQLite está tratando de hacer con cada declaración que compila, lo cual es una gran ayuda en la depuración. Dependiendo de cómo se compila, SQLite también tiene la capacidad de rastrear la ejecución de la máquina virtual, imprimiendo cada instrucción de máquina virtual y su resultado a medida que se ejecuta.
(Fuente: características distintivas de SQLite)
- ¿Por qué mi computadora se congela en la BIOS?
- ¿Qué tiene de anisotrópico el filtrado anisotrópico?
- ¿Cuáles son los desafíos recientes en el aprendizaje automático?
- Si pudieras retroceder en el tiempo con una unidad flash moderna, ¿cómo conseguirías que una computadora la lea?
- ¿Es fácil hacer que el centro de Bhopal sea bueno para GATE (informática)?
A mi modo de ver, elimina una capa innecesaria de abstracción para una implementación más fácil. Después de todo, el escaneo / unión / agregado, etc. debe descomponerse en algún momento en acciones individuales al nivel del lenguaje VM de SQLite de todos modos.
Solo puedo pensar en una ventaja de permanecer en el nivel del “árbol de consultas”: probablemente sea más fácil para los usuarios de DB entender la salida EXPLAIN
esa manera.