O PostgreSQL acaba de receber uma atualização histórica. O Grupo de Desenvolvimento Global do PostgreSQL anunciou oficialmente o lançamento do PostgreSQL 18, a mais recente versão do banco de dados relacional de código aberto mais avançado do mundo. Com foco em melhoria de desempenho, otimização de atualizações e novos recursos para desenvolvedores, o PostgreSQL 18 representa um salto significativo na evolução da plataforma.
Desempenho até 3× mais rápido com o novo subsistema de I/O assíncrono
Uma das principais novidades do PostgreSQL 18 é o novo subsistema de I/O assíncrono (AIO), que permite ao banco de dados processar múltiplas operações de leitura simultaneamente — algo que antes era feito de forma sequencial.
Isso significa que o PostgreSQL agora consegue ler dados do armazenamento até 3× mais rápido, melhorando drasticamente o desempenho de cargas de trabalho grandes e complexas.
O parâmetro io_method
permite alternar entre diferentes métodos de I/O, incluindo worker
e io_uring
, ou manter o modo síncrono tradicional. O resultado? Uma experiência mais fluida e responsiva, especialmente em sistemas com alto volume de consultas simultâneas.
Atualizações mais rápidas e sem queda de desempenho
Atualizar o PostgreSQL para uma nova versão costumava exigir tempo para que o banco recalculasse estatísticas de consulta, o que podia causar lentidão temporária. Agora, com o PostgreSQL 18, as estatísticas do planejador são preservadas durante a atualização, permitindo que o banco mantenha o desempenho ideal logo após a migração.
O utilitário pg_upgrade
também foi aprimorado: ele agora processa verificações em paralelo (via --jobs
), atualiza bancos grandes com mais agilidade e oferece a nova opção --swap
, que troca diretórios em vez de copiar arquivos, reduzindo significativamente o tempo de atualização.
Consultas mais rápidas e inteligentes
O PostgreSQL 18 traz melhorias significativas no otimizador de consultas:
- Skip Scan: permite o uso de índices de múltiplas colunas mesmo quando a primeira não é filtrada, acelerando buscas complexas.
- Otimização de condições OR: consultas com múltiplas condições passam a aproveitar índices, reduzindo o tempo de execução.
- Melhoria em junções (joins): junções hash estão mais rápidas, e junções por mesclagem agora suportam ordenações incrementais.
- Compilações paralelas para índices GIN: acelerando a indexação em grandes volumes de dados.
Além disso, há suporte a aceleração de hardware com CPUs ARM NEON e SVE, melhorando ainda mais a eficiência em ambientes modernos.
Novos recursos para desenvolvedores
Os desenvolvedores ganham várias funcionalidades que tornam o PostgreSQL ainda mais flexível:
- Colunas geradas virtuais: agora calculadas em tempo de consulta, reduzindo uso de disco.
- Suporte à cláusula RETURNING com OLD e NEW: facilitando auditoria e versionamento de dados em comandos INSERT, UPDATE, DELETE e MERGE.
- Nova função
uuidv7()
: gera UUIDs ordenados por data e hora, ideais para indexação e caching. - Restrições temporais (
WITHOUT OVERLAPS
): permitem validar intervalos de tempo diretamente em chaves primárias, únicas e estrangeiras. - Criação simplificada de tabelas externas: com
CREATE FOREIGN TABLE … LIKE
, é possível replicar estruturas locais de forma mais rápida.
Processamento de texto aprimorado
O PostgreSQL 18 traz avanços expressivos no processamento de texto e comparações de strings:
- Nova ordenação
PG_UNICODE_FAST
: mais rápida e com suporte completo a Unicode. - Função
casefold()
: simplifica comparações que ignoram maiúsculas/minúsculas. - Suporte a comparações LIKE não determinísticas: facilitando buscas mais complexas.
- Busca textual aprimorada: agora usa o provedor de ordenação padrão do cluster, o que pode exigir reindexação após o upgrade.
Segurança e autenticação: adeus MD5, olá OAuth 2.0
A segurança também recebeu atenção especial. O PostgreSQL 18 agora oferece autenticação OAuth 2.0 nativa, integrando-se facilmente a sistemas de logon único (SSO) corporativos.
Além disso:
- O modo FIPS passou a ser validado.
- Foi adicionado o parâmetro
ssl_tls13_ciphers
para configurar cifras TLS 1.3. - O MD5 foi oficialmente descontinuado, reforçando a recomendação do uso de SCRAM.
pgcrypto
agora suporta hash SHA-2.- Autenticação SCRAM também é suportada em conexões remotas via
postgres_fdw
edblink
.
Replicação lógica mais eficiente
O sistema de replicação lógica foi aprimorado para lidar com conflitos de escrita e oferecer streaming paralelo por padrão, acelerando a aplicação de transações.
O utilitário pg_createsubscriber
agora possui a opção --all
, permitindo criar réplicas para todos os bancos de uma instância com apenas um comando.
Também foi introduzido um mecanismo automático para remoção de slots de replicação ociosos, evitando o acúmulo desnecessário de arquivos de log de transação.
Observabilidade e manutenção
A manutenção ficou mais inteligente. O PostgreSQL 18 agora:
- Congela mais páginas durante o vacuum, reduzindo a necessidade de limpezas intensas.
- Adiciona métricas detalhadas ao EXPLAIN ANALYZE, incluindo buffers, CPU e estatísticas de WAL.
- Amplia o monitoramento em
pg_stat_all_tables
, facilitando a análise de desempenho por conexão e por I/O.
Mudanças estruturais e novo protocolo
Os bancos criados com o initdb
do PostgreSQL 18 agora têm checksums de página habilitados por padrão, aumentando a segurança dos dados. Além disso, o PostgreSQL 18 introduz a versão 3.2 do protocolo de comunicação, a primeira atualização desde 2003.
Essa evolução abre caminho para melhorias futuras em drivers, poolers e proxies de conexão.
Conclusão: um passo ousado rumo ao futuro
Com o PostgreSQL 18, a comunidade reforça o compromisso de manter o banco de dados open-source mais confiável e avançado do mercado. O foco em desempenho, segurança e experiência do desenvolvedor mostra que o PostgreSQL segue evoluindo para atender desde pequenas startups até grandes corporações globais.
Se você utiliza PostgreSQL em produção, esta é uma atualização que vale muito a pena testar.
Confira as notas de lançamento completas em https://www.postgresql.org/docs/18/release-18.html