Modo WAL de SQLite
Modo de journaling de SQLite (desde 3.7.0, 2010) que sustituye el rollback journal por un write-ahead log. Permite lectores concurrentes + un escritor sin bloquearse. Modo por defecto en despliegues modernos de SQLite.
Se activa con PRAGMA journal_mode=WAL;. Crea los ficheros database.db-wal y database.db-shm. Los checkpoints trasladan periódicamente los datos del WAL a la base principal. Contrapartidas: tres ficheros en vez de uno (copiar la base se complica — hay que usar la API de backup), y la memoria compartida exige soporte de mmap (problemático en algunos sistemas de ficheros en red). Las escrituras van de 10 a 100 veces más rápido bajo carga concurrente. Litestream y LiteFS construyen replicación encima del modo WAL. Es el estándar en apps modernas de SQLite: Cloudflare D1, Turso, aplicaciones serverless de fly.io.