Lançamento do SGBD PostgreSQL 17

Após um ano de desenvolvimento, foi lançada uma nova versão estável do SGBD PostgreSQL 17. Atualizações para esta nova versão serão lançadas durante cinco anos até novembro de 2029. O suporte para o PostgreSQL 12.x, a versão mais antiga atualmente suportada, será encerrado em 14 de novembro.

Principais novidades:

  • Na execução da operação VACUUM (coleta de lixo, limpeza e empacotamento do armazenamento em disco), uma nova estrutura de dados foi implementada, consumindo até 20 vezes menos memória. A transição para a nova estrutura permitiu acelerar a execução das operações VACUUM e reduzir o consumo de recursos compartilhados.
  • A otimização do desempenho de entrada/saída foi continuada. Graças à melhoria do código para o processamento do log de gravação atrasada WAL, foi possível aumentar em até duas vezes a capacidade das operações de gravação em sistemas com um grande número de consultas sendo executadas simultaneamente. Uma nova interface de entrada/saída em fluxo foi proposta, permitindo aumentar a velocidade de varredura sequencial de dados em tabelas e acelerar a atualização das estatísticas para o planejador de consultas após a execução da operação ANALYZE.
  • A performance de consultas com a expressão "IN" foi aprimorada quando índices baseados na estrutura B-tree são utilizados. A possibilidade de construção paralela de índices BRIN (Block Range Index) foi implementada. No planejador de consultas, foram otimizadas as verificações "NOT NULL" e acelerada a manipulação de expressões de tabela comuns (Common Table Expression, CTE) definidas pelo comando SQL "WITH". A utilização de instruções de processador vetorial (SIMD) foi assegurada para acelerar alguns cálculos; por exemplo, para acelerar a função bit_count, foram utilizadas instruções AVX-512.
  • Foi implementado o suporte para novas funcionalidades para trabalhar com o formato JSON, conforme definido no padrão SQL/JSON. Foi adicionada a função JSON-TABLE para converter dados do formato JSON em tabelas comuns do PostgreSQL, assim como novos operadores jsonpath para converter dados JSON em tipos de dados nativos do PostgreSQL. Novas funções para criação (JSON, JSON_SCALAR e JSON_SERIALIZE) e consulta (JSON_EXISTS, JSON_QUERY e JSON_VALUE) de dados no formato JSON foram propostas.
  • As funcionalidades do comando SQL «MERGE» foram ampliadas, permitindo a criação de expressões SQL condicionais que combinam as operações INSERT, UPDATE e DELETE em uma única expressão. O suporte à expressão RETURNING foi adicionado, permitindo calcular e retornar valores com base nas linhas adicionadas, atualizadas ou removidas. O suporte à atualização de visualizações foi implementado.
  • As capacidades de carregamento e exportação de dados em modo batch foram expandidas. A velocidade de exportação de grandes linhas no comando COPY foi aumentada em até duas vezes, a cópia foi otimizada quando as codificações de origem e destino são coincidentes e a opção ON_ERROR foi adicionada, permitindo continuar a importação após erros na inserção de dados.
  • Para tabelas particionadas, agora é possível utilizar colunas com identificadores únicos e há suporte para a técnica de otimização de consultas chamada «Constraint exclusion».
  • No mecanismo de conexão de tabelas externas, o Foreign Data Wrapper (postgres_fdw) agora permite a transmissão de servidor subconsultas «EXISTS» e «IN».
  • Foi implementado um mecanismo de collation independente de plataforma para o tratamento das propriedades de localidade «Collation», usadas para definir regras de ordenação e métodos de comparação que levam em consideração o significado dos caracteres (por exemplo, na ordenação de valores numéricos, considera-se a presença de um sinal negativo e um ponto antes do número, além de diferentes formas de escrita, enquanto na comparação não se leva em consideração o case dos caracteres e a presença de acentos). Este novo mecanismo garante um comportamento uniforme na ordenação dos resultados das consultas, independentemente da plataforma em que o PostgreSQL é executado.
  • No mecanismo de replicação lógica, que permite transmitir as alterações feitas no banco de dados para outro servidor durante a adição, remoção ou atualização de registros, o processo de atualização do SGBD foi simplificado. Antes, ao migrar para uma nova versão significativa, era necessário remover os slots de replicação lógica e re-sincronizar os dados; agora, é possível evitar a remoção dos slots. Para configurações de alta disponibilidade, foi implementada a capacidade de gerenciamento da troca para um servidor de backup (failover) para replicação lógica. Uma nova ferramenta pg_createsubscriber foi adicionada para transformar uma réplica física em uma nova réplica lógica.
  • Uma nova opção «sslnegotiation» foi adicionada para a negociação direta de conexões TLS seguras usando a extensão ALPN do TLS.
  • Foi implementado o papel predefinido pg_maintain, que concede ao usuário o direito de realizar operações relacionadas à manutenção do SGBD.
  • O utilitário pg_basebackup, usado para criar backups de bancos de dados, agora suporta backups incrementais. Para reconstruir um backup completo a partir de um conjunto de cópias incrementais, foi proposta uma nova ferramenta chamada pg_combinebackup. Ao utilitário pg_dump, foi adicionada a opção «—filter» para selecionar os objetos a serem incluídos no dump.
  • Ao analisar consultas usando o comando SQL «EXPLAIN», agora é exibido o tempo gasto na leitura e gravação de blocos locais durante a entrada/saída. O comando «EXPLAIN» também recebeu duas novas opções, «MEMORY» e «SERIALIZE», que permitem determinar o tamanho da memória utilizada e o tempo gasto na conversão de dados para transmissão pela rede.
  • Foi fornecida a indicação de progresso para a operação VACUUM com índices.
  • Foi adicionado a vista do sistema pg_wait_events, que, em combinação com a vista pg_stat_activity, permite aprofundar-se nas causas da espera de sessões ativas.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster