10 pontos por xguru 2021-05-12 | 3 comentários | Compartilhar no WhatsApp

Os principais ajustes que a Narrative, um sistema de apoio à tomada de decisão por meio de análise de dados, reuniu com base na própria experiência

  • Não usar o mesmo servidor do sistema de produção

  • Atualizar para PG 12+ (não usar CTE)

  • Manter os índices o menores possível

  • Particionamento de tabelas (range/list)

  • Minimizar I/O de disco

  • Fazer Vacuum após inserções em massa

  • Usar consultas paralelas

  • Aumentar a amostragem de estatísticas (por coluna ou no banco inteiro. O padrão é 100, mas usar 500)

  • Usar menos colunas (por ser armazenamento baseado em linhas)

  • Em tabelas com 50 milhões a 100 milhões de linhas, o Postgres funciona muito bem

  • Quando escalar para a casa dos bilhões, a recomendação é Citus

https://www.citusdata.com : open source que transforma o Postgres em um banco de dados distribuído

3 comentários

 
twince 2021-05-12

Pela experiência, acho que, quando é baseado em séries temporais, o TimescaleDB tende a ser melhor, mas como não tenho material para fundamentar isso, fico um pouco cauteloso. Em termos de taxa de compressão e desempenho, deixo aqui, com cautela, a opinião de que o TimescaleDB talvez seja superior.

 
toughrogrammer 2021-05-12

Fico curioso sobre como seria comparar o citus e o timescaledb.

 
galadbran 2021-05-12

Pelo que eu sei, o timescaledb tem vantagens na forma de particionamento por séries temporais, e o citus tem vantagens em sharding... (Pensando bem, talvez também não seja impossível usar os dois juntos?)