Uma ótima sexta-feira a todos! Falta cada vez menos tempo para o lançamento do curso
Em desenvolvimento
No PostgreSQL 10, vimos o nascimento do “particionamento declarativo”, um recurso projetado para resolver muitos problemas que eram insolúveis usando o antigo método de herança. Isso levou a uma ferramenta muito mais poderosa que nos permitiu dividir os dados horizontalmente!
Comparação de recursos
O PostgreSQL 11 apresenta um conjunto impressionante de novos recursos que ajudam a melhorar o desempenho e tornar as tabelas particionadas mais transparentes para os aplicativos.
1. Usando exceções limitantes
2. Adiciona apenas nós
3. Somente para uma tabela particionada referenciando uma tabela não particionada
4. Os índices devem conter todas as colunas-chave da partição
5. As restrições de seção em ambos os lados devem corresponder
Desempenho
Temos boas notícias aqui também! Novo método adicionado WHERE
. O algoritmo anterior, por sua vez, verificou cada seção para determinar se ela poderia atender à condição WHERE
. Isso resultou em um aumento adicional no tempo de planejamento à medida que o número de seções aumentava.
Na versão 9.6, com particionamento via herança, o roteamento de tuplas em partições era normalmente feito escrevendo uma função de gatilho que continha uma série de instruções IF para inserir a tupla na partição correta. Essas funções podem ser muito lentas para serem executadas. Com o particionamento declarativo adicionado na versão 10, isso funciona muito mais rápido.
Usando uma tabela particionada com 100 partições, podemos avaliar o desempenho de carregar 10 milhões de linhas em uma tabela com 1 coluna BIGINT e 5 colunas INT.
Desempenho de consultar esta tabela para encontrar um registro indexado e executar DML para manipular um registro (usando apenas 1 processador):
Aqui podemos ver que o desempenho de cada operação aumentou significativamente desde o PG 9.6. solicitações de SELECT
parecem muito melhores, especialmente aqueles que são capazes de excluir múltiplas partições durante o planejamento da consulta. Isso significa que o agendador pode pular muito trabalho que deveria ter feito antes. Por exemplo, os caminhos não são mais construídos para seções desnecessárias.
Conclusão
O particionamento de tabelas está começando a se tornar um recurso muito poderoso no PostgreSQL. Ele permite que você exiba dados online rapidamente e coloque-os offline sem esperar que operações DML lentas e massivas sejam concluídas.. Isso também significa que os dados relacionados podem ser armazenados juntos, o que significa que os dados necessários podem ser acessados com muito mais eficiência. As melhorias feitas nesta versão não teriam sido possíveis sem os desenvolvedores, revisores e committers que trabalharam incansavelmente em todos esses recursos.
Obrigado a todos eles! PostgreSQL 11 parece fantástico!
Aqui está um artigo tão curto, mas bastante interessante. Compartilhe seus comentários e não se esqueça de se inscrever
Fonte: habr.com