Meus 2 cents,
Uma comparacao rapida:
Resumo de desempenho
| Recurso | Configuração WAL + NORMAL | Padrão (DELETE + FULL) |
|---|---|---|
| Desempenho de escrita | ✅ Significativamente mais rápido devido a gravações sequenciais e menos sincronizações de disco por transação. | ❌ Mais lento devido ao bloqueio de todo o banco de dados e à realização de múltiplas gravações aleatórias em disco a cada commit. |
| Desempenho de leitura | ✅ Vários leitores podem operar simultaneamente com um único escritor, evitando bloqueios de leitura. | ❌ Uma transação de escrita bloqueia todo o banco de dados, impedindo todas as leituras e reduzindo a concorrência. |
| Concorrência | ✅ Alta. Suporta múltiplos leitores e um escritor operando ao mesmo tempo. | ❌ Baixa. Apenas um processo pode acessar o banco de dados por vez, tanto para leitura quanto para escrita. |
| Durabilidade dos dados | ⚠️ Alta resistência a falhas de aplicativos. ❌ Vulnerável à perda de dados em caso de queda de energia ou falha do sistema. | ✅ Durabilidade máxima contra todos os tipos de falhas (aplicativo, sistema e perda de energia). |
| E/S de disco | ✅ E/S sequencial para a maioria das transações, o que é mais eficiente em hardware moderno. | ❌ E/S aleatória e fragmentada durante as transações, o que é menos eficiente. |
Configuracoes extras (mais performance + mais riscos)
PRAGMA cache_size = -20000; (20 MB de cache em RAM, negativo mesmo - o padrao eh -2000 => 2Mb)
PRAGMA temp_store = MEMORY; (Armazena tabelas temporárias e índices em RAM.)
Configuracoes insanas
PRAGMA synchronous = OFF; (nao espera a escrita)
PRAGMA journal_mode = MEMORY; O journal (log de transações) fica só em RAM.
Riscos: em caso de crash da VM/queda de energia dados podem ser perdidos
No caso do insano, voce pode garantir a escrita a qualquer momento usando:
PRAGMA wal_checkpoint(FULL);
Isso forca o banco a escrever no disco;
Opcoes
PRAGMA wal_checkpoint(RESTART);
PRAGMA wal_checkpoint(TRUNCATE);
Na verdade voce pode forcar a escrita em qualquer modo, mas no caso insano eh particularmente interesante.
Saude e Sucesso !