além do script
Tecnologia

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.

Diagrama de arquitetura SQLite
Diagrama de arquitetura SQLite

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

BancoSetupConcorrênciaTamanhoIdeal para
SQLiteZeroLeitura alta< 1 TBApps menores
PostgreSQLAltoAltaIlimitadoProdução em geral
MySQLMédioAltaIlimitadoApps web tradicionais
DynamoDBZeroIlimitadaIlimitadoEscala 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.