Lançamento do PostgreSQL 12

A equipe PostgreSQL anunciou o lançamento do PostgreSQL 12, a versão mais recente do sistema de gerenciamento de banco de dados relacional de código aberto.
O PostgreSQL 12 melhorou significativamente o desempenho das consultas - especialmente ao trabalhar com grandes volumes de dados, e também otimizou o uso do espaço em disco em geral.

Novos recursos incluem:

  • implementação da linguagem de consulta JSON Path (a parte mais importante do padrão SQL/JSON);
  • otimização da execução de expressões de tabelas comuns (WITH);
  • suporte para colunas geradas

A comunidade também continua a trabalhar na extensibilidade e confiabilidade do PostgreSQL, desenvolvendo suporte para internacionalização, capacidades de autenticação e fornecendo maneiras mais fáceis de administrar o sistema.

Esta versão inclui a implementação de uma interface para mecanismos de armazenamento conectáveis, que agora permite aos desenvolvedores criar seus próprios métodos de armazenamento de dados.

Melhorias de desempenho

O PostgreSQL 12 inclui melhorias significativas de desempenho e manutenção para sistemas de indexação e particionamento.

Os índices de árvore B, o tipo de indexação padrão no PostgreSQL, foram otimizados na versão 12 para cargas de trabalho que envolvem modificações frequentes de índice. O uso do benchmark TPC-C para PostgreSQL 12 demonstrou uma redução média de 40% no uso de espaço e um aumento geral no desempenho da consulta.

As consultas em tabelas particionadas receberam melhorias notáveis, especialmente para tabelas que consistem em milhares de partições que exigem trabalhar apenas com partes limitadas das matrizes de dados. O desempenho de adição de dados a tabelas particionadas usando INSERT e COPY foi melhorado, bem como a capacidade de anexar uma nova partição sem bloquear consultas.

O PostgreSQL 12 fez melhorias adicionais na indexação que impactam o desempenho geral, incluindo:

  • sobrecarga reduzida ao gerar WAL para tipos de índice GiST, GIN e SP-GiST;
  • a capacidade de criar os chamados índices de cobertura (cláusula INCLUDE) em índices GiST;
  • a capacidade de realizar consultas de “vizinho mais próximo” (pesquisa k-NN) usando o operador de distância (<->) e usando índices SP-GiST;
  • suporte para coleta de estatísticas de valores mais comuns (MCV) usando CREATE STATISTICS, que ajuda a obter melhores planos de consulta ao usar colunas cujos valores estão distribuídos de forma desigual.

A compilação JIT usando LLVM, introduzida no PostgreSQL 11, agora está habilitada por padrão. A compilação JIT melhora o desempenho ao trabalhar com expressões em cláusulas WHERE, listas de destino, agregações e algumas operações internas. Está disponível se você compilou o PostgreSQL com LLVM ou está usando um pacote PostgreSQL que foi construído com LLVM habilitado.

Melhorias nos recursos da linguagem SQL e compatibilidade padrão

O PostgreSQL 12 introduziu a capacidade de consultar documentos JSON usando expressões de caminho JSON definidas no padrão SQL/JSON. Essas consultas podem aproveitar os mecanismos de indexação existentes para documentos armazenados no formato JSONB para recuperar dados com eficiência.

Expressões de tabela comuns, também conhecidas como consultas WITH, agora podem ser executadas automaticamente usando substituição no PostgreSQL 12, o que por sua vez pode ajudar a melhorar o desempenho de muitas consultas existentes. Na nova versão, uma parte de substituição de uma consulta WITH só pode ser executada se não for recursiva, não tiver efeitos colaterais e for referenciada apenas uma vez em uma parte subsequente da consulta.

PostgreSQL 12 introduz suporte para “colunas geradas”. Descrito no padrão SQL, esse tipo de coluna calcula um valor com base no conteúdo de outras colunas da mesma tabela. Nesta versão, o PostgreSQL suporta "colunas geradas armazenadas", onde o valor calculado é armazenado em disco.

Internacionalização

O PostgreSQL 12 expande o suporte para agrupamentos ICU, permitindo que os usuários definam "agrupamentos não determinísticos" que podem, por exemplo, permitir comparações que não diferenciam maiúsculas de minúsculas ou acentos.

Autenticação

O PostgreSQL expande seu suporte a métodos de autenticação fortes com diversas melhorias que fornecem segurança e funcionalidade adicionais. Esta versão introduz criptografia no lado do cliente e no lado do servidor para autenticação através de interfaces GSSAPI, bem como a capacidade do PostgreSQL descobrir servidores LDAP quando o PostgreSQL é compilado com OpenLDAP.

Além disso, o PostgreSQL 12 agora oferece suporte a uma opção de autenticação multifator. O servidor PostgreSQL agora pode exigir que o cliente forneça um certificado SSL válido com o nome de usuário correspondente usando clientcert=verify-full e combine isso com um requisito de método de autenticação separado (por exemplo, scram-sha-256).

administração

O PostgreSQL 12 introduziu a capacidade de realizar reconstruções de índice sem bloqueio usando o comando REINDEX CONCURRENTLY. Isso permite que os usuários evitem o tempo de inatividade do DBMS durante longas reconstruções de índice.

Além disso, no PostgreSQL 12, você pode ativar ou desativar somas de verificação de página em um cluster de desligamento usando o comando pg_checksums. Anteriormente, as somas de verificação de página, um recurso que ajuda a verificar a integridade dos dados armazenados no disco, só podiam ser habilitadas quando o cluster PostgreSQL era inicializado usando initdb.

Fonte: linux.org.ru

Adicionar um comentário