Campanha Novembro Azul
1 de novembro de 2018SERVIDORES DE CACHE – PERFORMANCE E ESCALABILIDADE
29 de novembro de 2018O PostgreSQL Global Development Group anunciou em outubro de 2018 o lançamento do PostgreSQL 11, a versão mais recente do banco de dados de código aberto mais avançado do mundo.
O PostgreSQL 11 oferece aos usuários melhorias no desempenho geral do sistema de banco de dados, com aprimoramentos específicos associados a grandes bancos de dados, com cargas de trabalho computacionais elevadas. Além disso, o PostgreSQL 11 faz melhorias significativas no sistema de particionamento de tabelas, adiciona suporte a transações em stored procedures, melhora no paralelismo de consultas e adiciona recursos de definição de dados paralelizados e, a grande novidade, introduz a just-in-time (JIT) compilation para acelerar a execução de expressões em consultas.
Maior robustez e desempenho para particionamento
O PostgreSQL 11 adiciona a capacidade de particionar dados por uma chave hash, também conhecida como hash partitioning, adicionando à capacidade atual de particionar dados no PostgreSQL por uma lista de valores ou por um intervalo. O PostgreSQL 11 melhora ainda mais sua capacidade de federação de dados com melhorias de funcionalidade para partições que usam o foreign data wrapper do PostgreSQL (postgres_fdw).
Para ajudar a gerenciar partições, o PostgreSQL 11 introduz uma partição padrão para todos os dados que não correspondem a uma chave de partição, e a capacidade de criação de chaves primárias, chaves estrangeiras, índices e triggers em tabelas particionadas que são transmitidas para todas as partições. O PostgreSQL 11 também suporta a movimentação automática de linhas para a partição correta, caso a chave de partição para essa linha seja atualizada.
O PostgreSQL 11 melhora o desempenho das consultas ao ler partições usando uma nova estratégia de eliminação de partições. Além disso, o PostgreSQL 11 passou a suporta o popular recurso upsert em tabelas particionadas, o que ajuda os usuários a simplificar o código da aplicação e reduz a sobrecarga da rede ao interagir com seus dados.
Transações suportadas em Stored Procedures
Os desenvolvedores sempre criaram funções definidas pelo usuário no PostgreSQL por mais de 20 anos, mas antes do PostgreSQL 11, essas funções não conseguiam gerenciar suas próprias transações. O PostgreSQL 11 adicionou SQL Procedures que podem realizar o gerenciamento completo de transações dentro do corpo de uma função, permitindo que os desenvolvedores criem aplicações mais avançados do lado do servidor, como aqueles envolvendo carregamento incremental de dados em massa.
SQL Procedures podem ser criadas usando o comando CREATE PROCEDURE, executados usando o comando CALL , e são suportados pelas linguagens procedurais PL/pgSQL, PL/Perl, PL/Python e PL/Tcl.
Aprimoramentos para o paralelismo de consultas
O PostgreSQL 11 melhorou o desempenho de consultas paralelas, com ganhos de performance em buscas sequenciais paralelas e junções por hash, acompanhada de buscas mais eficientes de dados particionados. O PostgreSQL agora pode executar consultas SELECT que usam UNION em paralelo se as consultas subjacentes não puderem ser paralelizadas.
O PostgreSQL 11 adicionou paralelismo a vários comandos de definição de dados, notavelmente para a criação de índices B-tree gerados pela execução do comando CREATE INDEX. Diversos comandos de definição de dados que criam tabelas ou visões materializadas a partir de consultas, também estão compatíveis paralelamente, incluindo CREATE TABLE AS, SELECT INTO e CREATE MATERIALIZED VIEW.
Just-in-Time (JIT) Compilation para expressões
O PostgreSQL 11 introduziu suporte a (JIT) compilation para acelerar a execução de algumas expressões durante a execução de queries. A JIT compilation usa o projeto LLVM para melhorar a velocidade da execução de expressões em cláusulas WHERE, target lists, agregações, projeções e algumas operações internas.
Para utilizar a compilação JIT é necessário instalar as dependências do LLVM e habilitar a JIT, seja no arquivo de configurações ou na seção.
Melhorias gerais na experiência do usuário
Os aprimoramentos PostgreSQL não são possíveis sem o feedback de uma comunidade ativa de usuários e o trabalho árduo das pessoas que trabalham no PostgreSQL. Abaixo, destacamos alguns dos muitos recursos incluídos no PostgreSQL 11 projetados para melhorar a experiência geral do usuário:
-
Corrige a necessidade de ALTER TABLE .. ADD COLUMN .. DEFAULT .. com um NOT NULL padrão para reescrever toda a tabela na execução, o que fornece um aumento significativo de desempenho ao executar este comando;
-
“Cobrindo índices”, que permite que um usuário adicione colunas adicionais a um índice usando a cláusula INCLUDE e seja útil para executar verificações somente de índice, especialmente em tipos de dados que não são indexáveis por índices de B-tree;
-
Funcionalidade adicional para trabalhar com funções de janela, incluindo permitir que RANGE use PRECEDING / FOLLOWING, GROUPS;
-
A inclusão das palavras-chave “quit” e “exit” na interface de linha de comando do PostgreSQL, para facilitar a saída da ferramenta de linha de comando.
Fontes: