SQLite im WAL-Modus

SQLite im WAL-Modus

- Matt

Die Meldung, dass die Datenbank gesperrt ist, kommt bei SQLite fast immer daher, dass ein Schreibvorgang alle Lesenden blockiert. Der WAL-Modus ändert das:

PRAGMA journal_mode=WAL;

Muss nur einmal pro Datenbankdatei gesetzt werden, die Einstellung bleibt erhalten. Danach lesen und schreiben Verbindungen gleichzeitig, nur mehrere Schreiber schließen sich weiter aus.

Zwei Nebenwirkungen: Es entstehen zusätzliche Dateien mit den Endungen -wal und -shm, die zur Datenbank gehören und mitkopiert werden müssen. Und auf Netzlaufwerken funktioniert WAL nicht zuverlässig, weil es gemeinsamen Speicher braucht.

Für eine lokale Anwendungsdatenbank ist es trotzdem fast immer die richtige Einstellung.