Modo WAL de SQLite: Compensación entre durabilidad y rendimiento
El modo WAL (Write-Ahead Log) de SQLite, a menudo utilizado para un mayor rendimiento de escritura, compromete la durabilidad de los datos en comparación con el modo de diario predeterminado. El pragma `synchronous` controla con qué frecuencia se llama a fsync; el valor predeterminado es NORMAL. En el modo NORMAL, los archivos WAL se sincronizan antes de cada punto de control y el archivo de base de datos después, pero la mayoría de las transacciones carecen de operaciones de sincronización. Para aplicaciones donde la durabilidad no es crítica, NORMAL es suficiente. Para una durabilidad garantizada ante una pérdida de energía, `synchronous=FULL` agrega una sincronización de archivo WAL después de cada confirmación de transacción, aumentando la durabilidad a costa de la velocidad de escritura. Esta explicación, motivada por preocupaciones sobre SurrealDB que posiblemente sacrifica la durabilidad para el rendimiento de referencia, aclara el enfoque de SQLite.