Por que o SQLite é subestimado em 2025
O SQLite tem evoluído silenciosamente e hoje suporta casos de uso que antes eram impensáveis para um banco embarcado.
BackendBanco de DadosSQLite
O SQLite tem uma reputação injusta de ser "apenas para desenvolvimento local". Em 2025, isso está muito longe da realidade.

O que mudou
Com o modo WAL (Write-Ahead Logging) e suporte a concorrência melhorado, o SQLite agora consegue lidar com centenas de leituras simultâneas sem engasgar. Projetos como Litestream permitem replicação contínua para S3, eliminando o argumento de "não tem backup".
Exemplo com better-sqlite3
typescript
import Database from 'better-sqlite3'
const db = new Database('blog.db')
db.pragma('journal_mode = WAL')
const posts = db
.prepare('SELECT * FROM posts ORDER BY published_at DESC LIMIT ?')
.all(10)
console.log(posts)
Comparativo com outros bancos
| Banco | Setup | Concorrência | Tamanho | Ideal para |
|---|---|---|---|---|
| SQLite | Zero | Leitura alta | < 1 TB | Apps menores |
| PostgreSQL | Alto | Alta | Ilimitado | Produção em geral |
| MySQL | Médio | Alta | Ilimitado | Apps web tradicionais |
| DynamoDB | Zero | Ilimitada | Ilimitado | Escala massiva |
Checklist antes de ir para produção
- Modo WAL ativado (
PRAGMA journal_mode = WAL) - Backup automatizado com Litestream
- Monitoramento do tamanho do arquivo do banco
- Plano de migração para PostgreSQL se necessário
Quando usar
- APIs com predominância de leitura
- Aplicações de uso pessoal ou de equipe pequena
- Prototipagem rápida que pode evoluir para produção
O segredo é parar de tratar banco de dados como algo que precisa necessariamente ser um servidor separado. Para a maioria dos casos de uso, o SQLite é mais do que suficiente.