Após um ano de desenvolvimento nova ramificação estável do SGBD PostgreSQL 12. Atualizações para a nova ramificação durante cinco anos até novembro de 2024.
Principais :
- Adicionada suporte para ““, cujos valores são calculados com base em uma expressão que engloba valores de outras colunas na mesma tabela (análogos a visões, mas para colunas individuais). Colunas geradas podem ser de dois tipos — armazenadas e virtuais. No primeiro caso, o valor é calculado no momento da inserção ou alteração de dados, enquanto no segundo, é calculado a cada leitura com base no estado atual de outras colunas. Atualmente, o PostgreSQL suporta apenas colunas geradas armazenadas;
- Adicionada a capacidade de executar consultas a partir de documentos JSON usando , semelhantes a e definidas no padrão SQL/JSON. Para aumentar a eficiência do processamento de tais expressões para documentos armazenados no formato JSONB, são aplicados mecanismos de indexação existentes;
- Ativada por padrão a aplicação do compilador JIT (Just-in-Time) com base nas descobertas do LLVM para acelerar a execução de algumas expressões durante o processamento de consultas SQL. Por exemplo, JIT é aplicável para acelerar a execução de expressões dentro de blocos "WHERE", em listas de saída (target lists), expressões agregadas e algumas operações internas;
- Significativamente aumentada a performance de indexação. Os índices B-tree foram otimizados para trabalhar em condições de frequente alteração de índices — em testes TPC-C, observou-se um aumento geral de desempenho e uma redução no consumo de espaço em disco, em média 40%. Reduzidos os custos de geração do log de gravação antecipada (WAL) para tipos de índices GiST, GIN e SP-GiST. Para GiST, adicionada a capacidade de criar índices de envoltório (via expressão INCLUDE) que incluem colunas adicionais. Na operação foi assegurado o suporte para estatísticas sobre os valores mais comuns (MCV), permitindo gerar planos de consulta mais otimizados ao utilizar colunas com distribuição não uniforme;
- A implementação de particionamento foi otimizada para consultas que abrangem tabelas com milhares de seções, limitando-se à seleção de um subconjunto restrito de dados. A performance da inserção de dados em tabelas particionadas foi aumentada com operações INSERT e COPY, e agora também é possível adicionar novas seções através de "ALTER TABLE ATTACH PARTITION" sem bloquear a execução das consultas;
- Foi adicionado suporte para a expansão inline automática de expressões de tabela comuns (, CTE), que permitem o uso de conjuntos de resultados nomeados temporários definidos com o operador WITH. A expansão inline pode melhorar o desempenho da maioria das consultas, mas atualmente é aplicada apenas para CTE não recursivas;
- Suporte adicionado propriedades de localidade "Collation", que permitem definir regras de ordenação e métodos de comparação levando em conta o significado dos caracteres (por exemplo, ao ordenar valores numéricos, é considerado a presença de um sinal negativo e ponto antes do número e diferentes formas de escrita, enquanto comparações ignoram diferenças de maiúsculas e minúsculas e a presença de acentos);
- Foi adicionado suporte para autenticação multifatorial do cliente, onde no pg_hba.conf é possível combinar a autenticação por certificado SSL (clientcert=verify-full) com um método adicional de autenticação, como scram-sha-256;
- Foi adicionado suporte para criptografia da comunicação durante a autenticação via , tanto do lado do cliente quanto do lado do servidor;
- Foi adicionado suporte para a definição de servidores LDAP com base em registros "DNS SRV", se o PostgreSQL for compilado com OpenLDAP;
- Foi adicionada a operação "" para reconstruir índices sem bloquear operações de gravação no índice;
- Foi adicionada o comando , que permite ativar e desativar a verificação de somas de verificação das páginas de dados em um banco de dados existente (anteriormente, essa operação só era suportada durante a inicialização do banco de dados);
- Foi garantida a exibição de um indicador de progresso durante a execução das operações CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL e pg_checksums;
- Foi adicionada a comando "" para conectar manipuladores de novos métodos de armazenamento de tabelas, otimizados para diferentes tarefas específicas. Atualmente, o único método de acesso embutido às tabelas é o "heap";
- O arquivo de configuração recovery.conf foi mesclado com postgresql.conf. Agora, como indicadores para a transição ao estado de recuperação após falhas, devem-se utilizar os arquivos recovery.signal e standby.signal. utilizar os arquivos recovery.signal e standby.signal.
Fonte: opennet.ru
