Tal como tem sido apresentado ano após ano entre Setembro e Outubro, Foi anunciado o lançamento da nova versão do PostgreSQL 17 e como em todas as versões anteriores, A prioridade continua sendo melhoria de desempenho e otimizações de recursos, especialmente para operações como VACUUM, E/S e consultas, enquanto o novo recurso mais importante desta versão é o backup incremental.
Para usuários corporativos, a atualização traz uma série de melhorias que simplificam o gerenciamento e o uso do banco de dados. Embora o PostgreSQL tenha sido historicamente um banco de dados relacional, esta versão expande sua integração com funcionalidades avançadas para trabalhar com documentos JSON, um recurso comumente associado ao MongoDB Atlas.
O que há de novo no PostgreSQL 17
Nesta nova versão do PostgreSQL 17 apresentada, um nova estrutura de dados na operação VACUUM, o que reduz o consumo de memória em até 20 vezes, permitindo que essas operações sejam mais rápidas e eficientes em termos de recursos compartilhados.
Da parte do Melhorias de desempenho, gerenciamento de log de write-back (WAL) foi otimizado, alcançando até duas vezes o desempenho de gravação em sistemas com muitas consultas simultâneas. Foi proposto um Interface de E/S de streaming para melhorar a pesquisa sequencial e atualizar estatísticas após realizar a operação ANALYZE.
Além disso, melhorias foram implementadas em consultas com cláusulas “IN” usando índices de árvore B, bem como a construção paralela de índices BRIN foram implementadas, as verificações "NOT NULL" foram otimizadas e o processamento de expressões de tabela comuns (CTE) foi acelerado e para cálculos intensivos, foram incorporados SIMD instruções, como AVX-512, para acelerar operações como a função `bit_count`.
Outra novidade que se destaca é o novos recursos para JSON, desde o Os usuários agora podem consultar tipos de dados JSON usando comandos SQL padrão. Isto é possível graças à nova funcionalidade da tabela json, que transforma dados JSON em uma estrutura tabular. A partir daí, os usuários podem fazer consultas usando a cláusula FROM em SQL, permitindo que os dados sejam retornados em formato relacional. Adicionada função `JSON_TABLE` para converter dados JSON em tabelas PostgreSQL padrão.
O nova funcionalidade de backup incremental no PostgreSQL 17 que permite que você faça backup apenas das alterações feitas desde o último backup completo ou incremental, o que otimiza o uso da largura de banda e reduz o armazenamento. Embora o PostgreSQL já oferecesse soluções como o WAL Archiving, que replicava o log write-ahead (WAL) para manter as seções necessárias do banco de dados, a versão 17 introduz pela primeira vez um mecanismo nativo para realizar cópias incrementais. Este sistema não só minimiza as interrupções durante a operação por ter menos impacto no desempenho, mas também reduz significativamente os tempos de recuperação, um aspecto fundamental já que restaurar backups costuma ser um processo lento e preocupante para os usuários.
Mecanismo independente de plataforma implementado para processar propriedades de localidade, permitindo um comportamento consistente na ordenação dos resultados da consulta. Este mecanismo leva em consideração fatores como a presença de caracteres especiais e distinção entre maiúsculas e minúsculas ao classificar os valores. O mecanismo de replicação lógica agora simplifica o processo de atualização do banco de dados sem a necessidade de excluir slots de replicação lógica ou ressincronizar dados ao migrar para uma nova versão.
Do outras mudanças que se destacam:
- A exportação de strings longas com o comando `COPY` foi acelerada em até duas vezes.
- Cópia otimizada quando as codificações de origem e destino correspondem.
- A opção `ON_ERROR` foi adicionada para permitir que a importação continue apesar de erros na inserção de dados.
- Adicionada a capacidade de usar colunas com identificadores exclusivos em tabelas particionadas.
- Implementou um recurso de failover para mudar para um servidor de backup em configurações tolerantes a falhas.
- Adicionado um novo utilitário pg_createsubscriber para converter uma réplica física em uma réplica lógica.
- Introduzida a opção “sslnegotiation” para negociar conexões TLS seguras diretamente usando a extensão ALPN TLS.
- Adicionada função predefinida pg_maintain, que dá aos usuários o direito de realizar operações relacionadas à manutenção do DBMS
Por fim, se você tiver interesse em saber mais sobre o assunto, pode consultar os detalhes no link a seguir.