Radar · 19/07/2026 · ocurrido el 18/07/2026 · coding

SQLite Query Explainer: la herramienta que enseña SQL leyendo tus queries

Simon Willison ha publicado una herramienta web que ejecuta tus queries SQL en una base de datos SQLite dentro del navegador y te explica, línea por línea, qué está haciendo el motor bajo el capó. Toma el output de EXPLAIN QUERY PLAN y del bytecode de bajo nivel de EXPLAIN, y lo anota con descripciones en inglés simple.

Por qué te importa. Entender qué hace el query planner es la diferencia entre una query que responde en 50 milisegundos y una que escanea toda la tabla. Hasta ahora solo había dos opciones: aprender a leer el output de EXPLAIN a simple vista (difícil, pocos lo hacen de verdad), o pegar la query en un chat con un LLM cada vez (funciona, pero no construye comprensión duradera). Esta herramienta está en el medio: te muestra el plan real con anotaciones, así aprendes viendo, no pidiendo.

La construyó con Claude Fable, la misma herramienta con la que reescribió recientemente sqlite-utils, después de leer un post de Julia Evans que decía que quería aprender a leer los query plan de SQLite.

Una limitación declarada: Willison escribía que no sabe lo suficiente sobre query plan de SQLite como para verificar los resultados. Las explicaciones deben tomarse como ayuda para aprender, no como verdad definitiva.

Si quieres probarlo, la herramienta es pública y no requiere instalación: abre la página, escribe una query, lee las anotaciones.

En detalle

SQLite, como cualquier base de datos, tiene un query planner: cuando le das una query, decide cómo ejecutarla. Puede usar un índice, hacer un escaneo completo de la tabla, unir tablas en cierto orden. La misma query escrita de dos formas diferentes puede ejecutarse en milisegundos o minutos, dependiendo de las decisiones del planner.

El comando EXPLAIN QUERY PLAN te permite ver estas decisiones. El output es compacto: pocas líneas que dicen, por ejemplo, SEARCH TABLE orders USING INDEX idx_customer o SCAN TABLE orders. La diferencia entre SEARCH y SCAN es enorme: la primera usa un índice y toca pocas filas, la segunda lee toda la tabla.

También existe un nivel más profundo, EXPLAIN, que muestra el bytecode que la máquina virtual de SQLite ejecuta realmente: una secuencia de instrucciones como OpenRead, Column, Next, Close. Es el assembly de SQLite, y leerlo requiere familiaridad con la arquitectura interna de la base de datos.

La herramienta de Willison toma ambos outputs y los anota. Para cada línea de EXPLAIN QUERY PLAN añade una frase que explica qué significa. Para cada instrucción del bytecode dice qué hace y por qué está ahí. El resultado es una explicación legible de algo que normalmente solo un DBA experto sabría interpretar.

Técnicamente, la herramienta corre completamente en el navegador. SQLite está compilado en WebAssembly y Python se ejecuta a través de Pyodide, también en WebAssembly. Sin servidor, sin API keys, sin datos que dejan tu computadora.

El patrón de construcción es tan interesante como el resultado. Willison usó Claude Fable para que le escribiera la herramienta después de leer el post de Julia Evans. Es el mismo enfoque del reciente sqlite-utils 4.0: una idea clara, un agente que la realiza, una revisión humana al final. El hecho de que Willison admita que no puede verificar las explicaciones es significativo: la herramienta es útil para explorar, pero no es un oráculo.

Esto conecta con un tema que atraviesa el discurso sobre AI que potencia a las personas. La herramienta no reemplaza tu comprensión de SQL: la acelera. En lugar de leer documentación abstracta sobre qué hace Next en el bytecode de SQLite, ves la instrucción aplicada a tu query, con una explicación contextualizada. Aprendes del caso real, no de la teoría.

La limitación, admitida honestamente, es que las anotaciones podrían contener errores. Si estás optimizando una query en producción, esta herramienta es un punto de partida para entender qué sucede, no la respuesta definitiva. Para eso todavía necesitas a alguien que sepa leer un plan de ejecución manualmente y pueda confirmar o refutar lo que la herramienta dice.

Escribe para buscar en curso, playbooks, skills, papers…