25 de Setembro de 2025 - O Grupo de Desenvolvimento Global do PostgreSQL anunciou hoje o lançamento do PostgreSQL 18, a versão mais recente do banco de dados de código aberto mais avançado do mundo.
PostgreSQL 18 melhora o desempenho de cargas de trabalho de todos os tamanhos
por meio de um novo subsistema de I/O que demonstrou melhorias de desempenho de
até 3x na leitura do armazenamento e também aumenta o número de consultas que
podem usar índices. Esta versão torna as atualizações de versões menos
disruptivas, acelerando os tempos de atualização e reduzindo o tempo necessário
para atingir o desempenho esperado após a conclusão de uma atualização. Os
desenvolvedores também se beneficiam dos recursos do PostgreSQL 18, incluindo
colunas geradas virtuais que calculam valores no momento da consulta e a função
uuidv7()
, que oferece melhor indexação e desempenho de leitura para UUIDs. O
PostgreSQL 18 facilita a integração com sistemas de logon único (SSO) com
suporte para autenticação OAuth 2.0.
"Os esforços da comunidade global de código aberto moldam cada lançamento do PostgreSQL e ajudam a fornecer recursos que atendem aos usuários onde seus dados residem", disse Jonathan Katz, um membro da equipe principal do PostgreSQL. "PostgreSQL 18 se baseia no longo e rico histórico do projeto de fornecer uma experiência de gerenciamento de dados confiável e robusta, ao mesmo tempo em que continua a expandir as cargas de trabalho que pode suportar."
PostgreSQL, um sistema inovador de gerenciamento de dados conhecido por sua confiabilidade, robustez e extensibilidade, se beneficia de quase 30 anos de desenvolvimento de código aberto de uma comunidade global de desenvolvedores e se tornou o banco de dados relacional de código aberto preferido por organizações de todos os tamanhos.
PostgreSQL anteriormente dependia de mecanismos de leitura antecipada do sistema operacional para acelerar a recuperação de dados. No entanto, como os sistemas operacionais não têm conhecimento dos padrões de acesso específicos do banco de dados, nem sempre conseguem prever quais dados serão necessários, resultando em desempenho abaixo do ideal em muitas cargas de trabalho.
O PostgreSQL 18 introduz um novo subsistema de I/O assíncrono (AIO) projetado para lidar com essa limitação. O AIO permite que o PostgreSQL emita múltiplas solicitações de I/O simultaneamente, em vez de esperar que cada uma seja concluída em sequência. Isso expande a leitura antecipada existente e melhora a taxa de transferência geral. As operações de AIO suportadas no PostgreSQL 18 incluem buscas sequenciais, buscas por bitmap da heap e limpeza de tabelas. O benchmarking demonstrou ganhos de desempenho de até 3x em determinados cenários.
O novo parâmetro
io_method
permite alternar entre os métodos AIO, incluindo worker
e io_uring
, ou você
pode optar por manter o comportamento atual do PostgreSQL com a configuração
sync
. Agora há mais parâmetros a serem considerados para ajuste com AIO,
sobre os quais você pode aprender mais na
documentação.
Um recurso fundamental do PostgreSQL é a geração e o armazenamento de
estatísticas que
ajudam o PostgreSQL a selecionar o plano de consulta mais eficiente. Antes do
PostgreSQL 18, essas estatísticas não eram transferidas em uma atualização
para nova versão, o que
podia causar degradações significativas no desempenho das consultas em sistemas
sobrecarregados até que o comando
ANALYZE
terminasse de
ser executado. O PostgreSQL 18 introduz a capacidade de manter estatísticas do
planejador durante uma atualização para nova versão, o que ajuda um cluster
atualizado a atingir o desempenho esperado mais rapidamente após a atualização.
Além disso, o
pg_upgrade
, um
utilitário que realiza atualizações para novas versões, inclui diversas
melhorias no PostgreSQL 18, tais como atualizações mais rápidas quando um banco
de dados contém muitos objetos, como tabelas e sequências. Esta versão também
permite que o pg_upgrade
processe suas verificações em paralelo com base na
configuração da opção --jobs
e adiciona a opção --swap
que troca diretórios
de atualização em vez de copiar, clonar ou vincular arquivos.
O PostgreSQL 18 acelera ainda mais o desempenho das consultas com
funcionalidades que tornam suas cargas de trabalho mais rápidas
automaticamente. Esta versão introduz pesquisas "skip scan" em índices de
árvore B com múltiplas
colunas, o que
melhora o tempo de execução para consultas que omitem uma condição =
em uma
ou mais colunas iniciais do índice. Ele também pode otimizar consultas que usam
condições OR
em um WHERE
para usar um índice, resultando em uma execução
significativamente mais rápida. Há também inúmeras melhorias na forma como o
PostgreSQL planeja e executa junções de tabelas, desde o aumento do desempenho
de junções hash ao permitir que junções por mesclagem usem ordenações
incrementais. O PostgreSQL 18 também suporta compilações paralelas para
índices GIN, se juntando a
índices de árvore B e BRIN
que suportam essa funcionalidade.
Esta versão também introduz suporte a aceleração de hardware no PostgreSQL,
incluindo suporte para intrínsecos de CPU ARM NEON e SVE para a função
popcount
, que é usada pelo
bit_count
e
outros recursos internos.
O PostgreSQL 18 introduz colunas geradas virtuais que calculam valores no momento da consulta, em vez de armazená-los. Esta agora é a opção padrão para colunas geradas. Além disso, colunas geradas armazenadas agora podem ser replicadas logicamente.
Esta versão adiciona a capacidade de acessar os valores anteriores (OLD
) e
atuais (NEW
) na cláusula
RETURNING
para os
comandos INSERT
, UPDATE
, DELETE
e MERGE
. O PostgreSQL 18 também
adiciona a geração de UUIDv7 por meio da função
uuidv7()
,
permitindo gerar UUIDs aleatórios ordenados por data e hora para oferecer suporte
a melhores estratégias de cache. O PostgreSQL 18 inclui
uuidv4()
como um alias para gen_random_uuid()
.
O PostgreSQL 18 adiciona restrições
temporais
-- restrições sobre intervalos -- para as restrições PRIMARY KEY
e UNIQUE
usando a cláusula WITHOUT OVERLAPS
, e para as restrições FOREIGN KEY
usando
a cláusula PERIOD
.
Por fim, o PostgreSQL 18 facilita a criação da definição de esquema de uma
tabela externa usando a definição de uma tabela local com o comando CREATE FOREIGN TABLE ... LIKE
.
O PostgreSQL 18 torna o processamento de texto mais fácil e rápido com diversos
novos aprimoramentos. Esta versão adiciona a ordenação
PG_UNICODE_FAST
,
que fornece semântica Unicode completa para transformações de maiúsculas e
minúsculas, ajudando a acelerar muitas comparações. Isso inclui as funções de
comparação de cadeias de caracteres upper
e lower
e a nova função
casefold
para comparações que não diferenciam maiúsculas de minúsculas. Além disso, o
PostgreSQL 18 agora suporta comparações LIKE
sobre texto que usa uma
ordenação não
determinística,
simplificando a execução de correspondências de padrões mais complexas. Esta
versão também altera a busca
textual para usar o
provedor de ordenação padrão de um cluster em vez de sempre usar libc, o que
pode exigir a reindexação de todos os índices de busca
textual
e pg_trgm
após
executar o pg_upgrade
.
O PostgreSQL 18 introduz a autenticação
oauth
, que permite aos
usuários autenticar usando mecanismos OAuth 2.0 suportados por extensões do
PostgreSQL. Além disso, o PostgreSQL 18 inclui validação para o modo
FIPS
e adiciona o parâmetro
ssl_tls13_ciphers
para configurar conjuntos de cifras TLS v1.3 do lado do servidor.
Esta versão descontinua a autenticação de senha md5
, que será removida em uma
versão futura. Se você precisar de autenticação baseada em senha do PostgreSQL,
use a autenticação
SCRAM. O PostgreSQL 18
também suporta autenticação de passagem SCRAM com
postgres_fdw
e
dblink
para autenticação em
instâncias remotas do PostgreSQL. Além disso,
pgcrypto
agora suporta
criptografia SHA-2 para hash de
senha.
O PostgreSQL 18 suporta o relato de conflitos de escrita na replicação lógica
em logs e na visão
pg_stat_subscription_stats
.
Além disso, CREATE SUBSCRIPTION
agora usa streaming paralelo por padrão para aplicar transações, o que pode
ajudar a melhorar o desempenho. O utilitário
pg_createsubscriber
agora possui uma opção --all
para que você possa criar réplicas lógicas para
todos os bancos de dados em uma instância com um único comando. O PostgreSQL 18
também permite que você remova automaticamente slots de replicação
ociosos
para ajudar a evitar o armazenamento de muitos arquivos de log de transação em
um publicador.
O PostgreSQL 18 aprimora sua estratégia de limpeza (vacuum), congelando proativamente mais páginas durante limpezas regulares, reduzindo a sobrecarga e auxiliando em situações que exigem limpezas agressivas.
O PostgreSQL 18 adiciona mais detalhes ao
EXPLAIN
, que fornece
informações sobre a execução do plano de consulta e, a partir desta versão,
agora mostra automaticamente quantos buffers (a unidade fundamental de
armazenamento de dados) são acessados ao executar EXPLAIN ANALYZE
. Além
disso, EXPLAIN ANALYZE
agora mostra quantas consultas de índice ocorrem
durante uma busca por índice, e EXPLAIN ANALYZE VERBOSE
inclui estatísticas
de CPU, WAL e leitura média. O PostgreSQL 18 inclui mais informações em
pg_stat_all_tables
sobre o tempo gasto na limpeza e operações relacionadas, bem como estatísticas
por conexão sobre a utilização de I/O e WAL.
Bancos de dados inicializados com o
initdb
do PostgreSQL 18
agora têm somas de verificação de página habilitadas por padrão. Isso pode
afetar atualizações de clusters sem soma de verificação habilitada, o que
exigiria a criação de um novo cluster do PostgreSQL 18 com a opção
--no-data-checksums
ao usar
pg_upgrade
.
O PostgreSQL 18 também apresenta uma nova versão (3.2) do protocolo do
PostgreSQL, a primeira versão do protocolo desde o PostgreSQL 7.4 (2003). A
libpq
ainda usa a
versão 3.0 por padrão, enquanto clientes (por exemplo, drivers, poolers,
proxies) adicionam suporte para a nova versão do protocolo.
Muitas outras novas funcionalidades e melhorias foram adicionadas ao PostgreSQL 18 que também podem ser úteis para os seus casos de uso. Veja as notas de lançamento para a lista completa de funcionalidades novas e modificadas.
PostgreSQL é o banco de dados mais avançado do mundo, com uma comunidade global de milhares de usuários, colaboradores, empresas e organizações. Desde de sua criação na Universidade da Califórnia, Berkeley, há mais de 40 anos, o PostgreSQL tem mantido um ritmo inigualável de desenvolvimento. Conjunto de funcionalidades maduras do PostgreSQL não só se igualam aos principais sistemas de bancos de dados proprietários, mas os supera em funcionalidades avançadas, extensibilidade, segurança e estabilidade.
PostgreSQL é o banco de dados mais avançado do mundo, com uma comunidade global de milhares de usuários, colaboradores, empresas e organizações. Desde de sua criação na Universidade da Califórnia, Berkeley, há mais de 40 anos, o PostgreSQL tem mantido um ritmo inigualável de desenvolvimento. Conjunto de funcionalidades maduras do PostgreSQL não só se igualam aos principais sistemas de bancos de dados proprietários, mas os supera em funcionalidades avançadas, extensibilidade, segurança e estabilidade.
Learn more about PostgreSQL and participate in our community at PostgreSQL.org.
Para explicação sobre as funcionalidades acima e outras, consulte os seguintes links:
Há várias maneiras de fazer uma cópia do PostgreSQL 18, incluindo:
Outras ferramentas e extensões estão disponíveis na PostgreSQL Extension Network.
O PostgreSQL 18 vem com documentação em HTML bem como páginas man, e você também pode navegar na documentação online nos formatos HTML e PDF.
O PostgreSQL usa a PostgreSQL License, uma licença "permissiva" do tipo BSD. Esta licença certificada pela OSI é amplamente apreciada como flexível e amigável aos negócios, uma vez que não restringe o uso do PostgreSQL com aplicações comerciais e proprietárias. Juntamente com o suporte de múltiplas empresas e a propriedade pública do código fonte, nossa licença torna o PostgreSQL muito popular entre os fornecedores que desejam incorporar um banco de dados em seus produtos sem o medo de taxas, dependência de fornecedor ou alterações nos termos de licenciamento.
Página Web
Postgres, PostgreSQL e o Logotipo do Elefante (Slonik) são todas marcas registradas da PostgreSQL Community Association. Se você deseja utilizar estas marcas, você deve estar em conformidade com a política de marcas registradas.
O PostgreSQL conta com o apoio de inúmeras empresas, que financiam desenvolvedores, fornecem recursos de hospedagem e nos dão suporte financeiro. Veja nossa página de patrocinadores para alguns desses apoiadores do projeto.
Há também uma grande comunidade de empresas que oferecem suporte ao PostgreSQL, de consultores individuais a empresas multinacionais.
Se você deseja fazer uma contribuição financeira para o Grupo de Desenvolvimento Global do PostgreSQL ou uma das organizações comunitárias sem fins lucrativos reconhecidas, visite nossa página de doações.