SQLite – von innen, Byte für Byte
Was steht eigentlich in einer .sqlite-Datei? Wie findet SQLite eine Zeile, wie wird aus SQL ein Bytecode-Programm, und warum geht beim Stromausfall nichts kaputt? Alles interaktiv – mit einer echten SQLite-Engine, die als WebAssembly in deinem Browser läuft.
🗺️Kapitel
Dateiformat
100-Byte-Kopf, Seiten, vier B-Baum-Seitentypen, Record-Format, Varints, Overflow, Freelist, sqlite_schema.
Hex-Explorer
Beispiel-DB oder eigene Datei: farbige Byte-Bereiche, Seitenkarte, B-Baum-Diagramm, Record-Dekodierung per Klick.
Engine & VDBE
Tokenizer → Parser → Code-Generator → Bytecode. EXPLAIN Schritt für Schritt mit Registern und Cursorn.
Journal & WAL
Rollback-Journal vs. Write-Ahead-Log als Zeitleiste, Sperrzustände, Checkpoints, wal-index.
Typen & Affinität
Dynamische Typisierung, die fünf Affinitätsregeln, STRICT-Tabellen – live mit echter SQLite.
PRAGMAs & Einsatz
journal_mode, synchronous, foreign_keys, page_size, integrity_check – und wann SQLite passt.
SQL-Spielplatz
Beliebiges SQL gegen die Beispiel-Datenbank, mit EXPLAIN QUERY PLAN und Export der geänderten Datei.
🏗️Architektur: der Weg einer Abfrage
Virtuelle Maschine (VDBE)
Quelltext: vdbe.c
Führt das Bytecode-Programm Instruktion für Instruktion aus – mit Registern und Cursorn. EXPLAIN zeigt genau dieses Programm.
"SELECT …" ──► Tokens ──► Syntaxbaum ──► Bytecode
│
▼
Datei ◄── VFS ◄── Pager (Seiten) ◄── B-Baum ◄── VDBE