Modo WAL do SQLite: Compensação entre Durabilidade e Desempenho
O modo WAL (Write-Ahead Log) do SQLite, frequentemente usado para maior taxa de transferência de gravação, compromete a durabilidade dos dados em comparação com o modo de diário padrão. O pragma `synchronous` controla a frequência com que o fsync é chamado; o padrão é NORMAL. No modo NORMAL, os arquivos WAL são sincronizados antes de cada ponto de verificação e o arquivo de banco de dados depois, mas a maioria das transações não possui operações de sincronização. Para aplicativos onde a durabilidade não é crítica, NORMAL é suficiente. Para durabilidade garantida em caso de perda de energia, `synchronous=FULL` adiciona uma sincronização de arquivo WAL após cada confirmação de transação, aumentando a durabilidade ao custo de velocidade de gravação. Esta explicação, motivada por preocupações sobre o SurrealDB possivelmente sacrificando a durabilidade para o desempenho de benchmark, esclarece a abordagem do SQLite.