PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Quais são os prós e contras de realizar cálculos em sql vs. em seu aplicativo


Depende de muitos fatores - mas o mais importante:
  • complexidade de cálculos (prefira fazer cálculos complexos em um servidor de aplicativos, pois isso dimensiona; em vez de um servidor db, que aumenta )
  • volume de dados (se você precisar acessar/agregar muitos dados, fazê-lo no servidor db economizará largura de banda e disk io se os agregados puderem ser feitos dentro de índices)
  • conveniência (sql não é a melhor linguagem para trabalho complexo - especialmente não é boa para trabalho procedural, mas muito boa para trabalho baseado em conjunto; porém, tratamento de erros ruim)

Como sempre, se você fazer traga os dados de volta ao servidor de aplicativos, minimizando as colunas e linhas será uma vantagem. Certificar-se de que a consulta esteja ajustada e indexada adequadamente ajudará em qualquer um dos cenários.

Re sua nota:

e, em seguida, percorrer os registros

Loop por meio de registros é quase sempre a coisa errada a se fazer no sql - é preferível escrever uma operação baseada em conjunto.

Como regra geral , prefiro manter o trabalho do banco de dados no mínimo "armazenar esses dados, buscar esses dados" - no entanto, sempre há exemplos de cenários em que uma consulta elegante no servidor pode economizar muita largura de banda.

Considere também:se isso for computacionalmente caro, pode ser armazenado em cache em algum lugar?

Se você deseja um preciso "qual é melhor"; codifique-o das duas maneiras e compare-o (observando que um primeiro rascunho de qualquer um deles provavelmente não está 100% ajustado). Mas leve em consideração o uso típico para isso:se, na realidade, está sendo chamado 5 vezes (separadamente) ao mesmo tempo, simule isso:não compare apenas um único "1 desses vs 1 daqueles".