Versão do SGBD PostgreSQL 12

Após um ano de desenvolvimento publicado nova ramificação estável do SGBD PostgreSQL 12. Atualizações para a nova ramificação vai sair por cinco anos até novembro de 2024.

O principal inovações:

  • Adicionado suporte para "colunas geradas", cujo valor é calculado com base em uma expressão que cobre os valores de outras colunas da mesma tabela (semelhante às visualizações, mas para colunas individuais). As colunas geradas podem ser de dois tipos – armazenadas e virtuais. No primeiro caso, o valor é calculado no momento em que os dados são adicionados ou alterados e, no segundo caso, o valor é calculado a cada leitura com base no estado atual das outras colunas. Atualmente, o PostgreSQL suporta apenas colunas geradas armazenadas;
  • Adicionada a capacidade de consultar dados de documentos JSON usando Expressões de caminhoparecendo XPath e definido no padrão SQL/JSON. Os mecanismos de indexação existentes são usados ​​para melhorar a eficiência do processamento de tais expressões para documentos armazenados no formato JSONB;
  • Habilitado por padrão está o uso de um compilador JIT (Just-in-Time) baseado em desenvolvimentos LLVM para acelerar a execução de algumas expressões durante o processamento de consultas SQL. Por exemplo, JIT é usado para acelerar a execução de expressões dentro de blocos WHERE, listas de destino, expressões agregadas e algumas operações internas;
  • O desempenho da indexação foi significativamente melhorado. Os índices de árvore B são otimizados para funcionar em ambientes onde os índices mudam frequentemente - os testes TPC-C mostram um aumento geral no desempenho e uma redução média no consumo de espaço em disco de 40%. Sobrecarga reduzida ao gerar log write-ahead (WAL) para tipos de índice GiST, GIN e SP-GiST. Para GiST, foi adicionada a capacidade de criar índices wrapper (por meio da expressão INCLUDE) que incluem colunas adicionais. Em operação CRIAR ESTATÍSTICAS Fornece suporte para estatísticas de valor mais comum (MCV) para gerar planos de consulta mais ideais ao usar colunas distribuídas de forma desigual;
  • A implementação de particionamento é otimizada para consultas que abrangem tabelas com milhares de partições, mas estão limitadas à seleção de um subconjunto limitado de dados. Foi aumentada a performance de adição de dados em tabelas particionadas utilizando operações INSERT e COPY, sendo também possível adicionar novas seções através de “ALTER TABLE ATTACH PARTITION” sem bloquear a execução da consulta;
  • Adicionado suporte para expansão automática em linha de expressões de tabela generalizadas (Expressão de tabela comum, CTE) que permitem o uso de conjuntos de resultados nomeados temporários especificados usando a instrução WITH. A implantação inline pode melhorar o desempenho da maioria das consultas, mas atualmente é usada apenas para CTEs não recursivos;
  • Suporte adicionado não determinístico propriedades do código de idioma “Collation”, que permite definir regras de classificação e métodos de correspondência levando em consideração o significado dos caracteres (por exemplo, ao classificar valores digitais, a presença de um sinal de menos e um ponto na frente de um número e diferentes tipos da ortografia são levados em consideração e, na comparação, não são levados em consideração o caso dos caracteres e a presença de acento);
  • Adicionado suporte para autenticação de cliente multifator, no qual em pg_hba.conf você pode combinar autenticação de certificado SSL (clientcert=verify-full) com um método de autenticação adicional, como scram-sha-256 para autenticação;
  • Adicionado suporte para criptografia do canal de comunicação ao autenticar via GSSAPI, tanto do lado do cliente quanto do lado do servidor;
  • Adicionado suporte para determinar servidores LDAP com base em registros “DNS SRV” se o PostgreSQL for construído com OpenLDAP;
  • Operação adicionada "REINDEXAR CONCORRENTEMENTE» reconstruir índices sem bloquear operações de gravação no índice;
  • Equipe adicionada pg_checksums, que permite ativar ou desativar a verificação de somas de verificação de páginas de dados para um banco de dados existente (anteriormente, essa operação era suportada apenas durante a inicialização do banco de dados);
  • Forneceu saída do indicador de progresso para operações CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL e pg_checksums;
  • Comando adicionado "CRIAR MÉTODO DE ACESSO» para conectar manipuladores para novos métodos de armazenamento de tabelas otimizados para diversas tarefas específicas. Atualmente o único método de acesso à tabela integrado é o "heap";
  • O arquivo de configuração recovery.conf foi mesclado com postgresql.conf. Como indicadores de transição para o estado de recuperação após uma falha, agora deveria use os arquivos recovery.signal e standby.signal.

Fonte: opennet.ru

Adicionar um comentário