Mode WAL de SQLite : compromis entre durabilité et performance

2025-08-24

Le mode WAL (Write-Ahead Log) de SQLite, souvent utilisé pour un débit d'écriture plus élevé, compromet la durabilité des données par rapport au mode journal par défaut. Le pragma `synchronous` contrôle la fréquence d'appel de fsync ; la valeur par défaut est NORMAL. En mode NORMAL, les fichiers WAL sont synchronisés avant chaque point de contrôle et le fichier de base de données après, mais la plupart des transactions ne comportent pas d'opérations de synchronisation. Pour les applications où la durabilité n'est pas critique, NORMAL est suffisant. Pour une durabilité garantie en cas de panne de courant, `synchronous=FULL` ajoute une synchronisation de fichier WAL après chaque validation de transaction, augmentant la durabilité au détriment de la vitesse d'écriture. Cette explication, motivée par des inquiétudes concernant SurrealDB qui pourrait sacrifier la durabilité pour les performances de référence, clarifie l'approche de SQLite.

(avi.im)