Pular para o conteúdo

SQLite 3.54.0 fica 4% mais rápido e abandona o Windows XP

O SQLite 3.54.0 roda cerca de 4% mais rápido, adiciona uma função diskused() que substitui o sqlite3_analyzer, muda padrões da CLI e abandona o suporte ao Windows XP.

Por Tech AI Wire Team

3 min de leitura

XLinkedIn
Captura de tela da página de notas de versão do SQLite, SQLite Release 3.54.0 On 2026-10-09, com a lista de melhorias da CLI.

Em números

faster than the previous release, in CPU cycles
~4%
faster than SQLite 3.51.0 a year ago
~7.5%
now the oldest supported Windows version
Vista

O SQLite 3.54.0 foi lançado em 9 de outubro de 2026 e roda cerca de 4% mais rápido que a versão anterior. O SQLite é o pequeno motor de banco de dados embutido em celulares, navegadores e inúmeros aplicativos. Por isso, até um ganho modesto de velocidade chega a um número enorme de dispositivos. Esta versão também muda vários padrões da ferramenta de linha de comando e abandona o suporte ao Windows XP. A API, a sintaxe SQL e o formato de arquivo continuam retrocompatíveis, observa o Linux Compatible.

Quanto mais rápido

As notas de versão trazem dois números:

  • Cerca de 4% mais rápido que a versão anterior
  • Cerca de 7,5% mais rápido que a versão 3.51.0, lançada um ano antes

O SQLite mede a velocidade contando ciclos de CPU enquanto roda seu benchmark speedtest1 sob o valgrind no Linux x64. As notas de versão alertam que os resultados variam conforme a carga de trabalho, as opções de compilação, a CPU, o compilador e o sistema operacional.

Grande parte do ganho vem do planejador de consultas, a parte que decide como executar cada consulta:

  • Um UPDATE em uma tabela com índices de expressão agora ignora o índice quando o valor indexado não mudou.
  • Expressões como x OR TRUE e x OR FALSE são tratadas melhor.
  • O DISTINCT é ignorado em um SELECT do lado direito de um IN, onde ele não faz diferença.
  • Uma UNION com LIMIT 1 é mais rápida e usa menos memória.

Novas funções e limites

O SQLite 3.54.0 adiciona várias ferramentas novas para desenvolvedores:

AdiçãoO que faz
diskused()Uma extensão opcional que informa o uso de disco; ela substitui o obsoleto sqlite3_analyzer
%J e %jNovas conversões de printf() e format() para literais de string JSON
sqlite3_result_str()Uma nova interface C
sqlite3_incomplete()Uma nova interface C
weekday -N e end ofNovos modificadores de data e hora
SQLITE_LIMIT_SCHEMAUma nova categoria de sqlite3_limit()
SQLITE_LIMIT_TRIGGER_STEPSUma nova categoria de sqlite3_limit()

O SQLite agora usa O_TMPFILE para arquivos temporários onde o sistema oferece suporte. O ALTER TABLE também se recusa a adicionar, remover ou renomear uma coluna chamada ROWID, ROWID ou OID.

Há uma mudança relacionada à segurança. O autorizador, um callback que aprova ou bloqueia ações SQL, agora é executado para funções SQL em uma cláusula DEFAULT de CREATE TABLE. Ele é executado quando a tabela é criada e quando o valor padrão é usado, mas não quando o esquema é lido na abertura.

Mudanças na linha de comando

O shell sqlite3 recebe várias mudanças, e algumas delas alteram o comportamento padrão:

  • O prompt pode ser definido com as variáveis de ambiente SQLITE_PS1 e SQLITE_PS2, e o prompt padrão respeita NO_COLOR.
  • Os cabeçalhos de coluna agora aparecem nos modos em colunas mesmo quando uma consulta não retorna linhas.
  • O .mode ganha --rowcount on, --ifmt e --fpfmt, e --titles always passa a ser o padrão.
  • Uma linha contendo apenas go ou / não encerra mais uma instrução, a menos que o SQLite seja compilado com -DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR.
  • O novo comando .diskused usa a função diskused().

Fim do suporte ao Windows XP

O SQLite não oferece mais suporte ao Windows XP ou a versões anteriores, incluindo o Windows CE. O Windows Vista, de por volta de 2007, passa a ser o mínimo. No Windows, alguns bloqueios internos agora usam Slim Reader/Writer Locks, um recurso mais recente do Windows. Aplicativos UWP e WebUI devem ser compilados com -DSQLITE_UWP=1. Linux, macOS, BSD e outros sistemas do tipo Unix não são afetados.

O SQLite não é o único a cortar o suporte a versões antigas do Windows. O Rust 1.100 deixou de distribuir seu compilador para Windows de 32 bits no início deste mês.

O que isso significa para os desenvolvedores

  • Atualize pela velocidade. Um ganho de 4% em ciclos de CPU vem de graça para a maioria dos aplicativos. Rode seus próprios benchmarks, já que os resultados dependem da carga de trabalho.
  • Verifique scripts que usam a CLI. Os cabeçalhos agora aparecem em resultados vazios, e go ou / não encerra mais uma instrução. Scripts que analisam a saída do sqlite3 podem precisar de ajuste.
  • Substitua o sqlite3_analyzer. Ele está obsoleto. Passe os relatórios de uso de disco para o .diskused ou para a função diskused().
  • Revise as migrações com ALTER TABLE. Qualquer migração que mexa em uma coluna chamada ROWID, ROWID ou OID agora vai falhar.
  • Verifique os alvos Windows. Se você ainda distribui para Windows XP ou Windows CE, fique em um SQLite mais antigo ou abandone esses sistemas.
  • Revise os callbacks de autorização. Se o seu aplicativo usa um, teste tabelas cujas cláusulas DEFAULT chamam funções SQL.

A maioria dos aplicativos pode atualizar com segurança. Teste primeiro os scripts da CLI e as migrações antigas.

Fontes

  1. SQLite Release 3.54.0 On 2026-10-09 - SQLite
  2. SQLite 3.54.0 Release: Faster Engine, New CLI Features, and Dropped Windows XP Support - Linux Compatible

Artigos relacionados