Ótimo post! Gostei da forma como você documentou e explicou o processo passo a passo. Acredito que lidar com muitos dados correlacionados e ter que otimizar seja um problema recorrente para desenvolvedores back-end.
Já tive que otimizar muito código semelhante em TypeScript e, na maioria das vezes, o que resolve a maioria dos gargalos é realizar consultas eficientes no banco de dados em vez de manipular objetos de uma lista gigante.
Muito obrigado!
Sim, uma conexão com o banco pode se tornar um gargalo muito facil se não for feita com cuidado. Desde SELECT *
até falta de indices, tudo pode fazer a diferença.
Mas também, é muito importante prestar atenção noódigo e na linguagem que está usando.
Saber o que um método como o .Select()
faz por baixo dos panos pode ser o guia pra descobrir qual seria o melhor caminho a tomar.
E como as máquinas não tem poder computacional infinito, quanto mais otimizarmos nossos próprios algoritmos para fazer o mínimo esforço possível, melhor!
Perfeito! Saber o que um método faz pro baixo dos panos é extremamente importante.
Pelo menos nas linguagens com as quais trabalho, sinto que muitos problemas desse tipo em banco de dados decorrem do uso indiscriminado de ORM's, nos quais o desenvolvedor lida apenas com abstrações nos métodos e não compreende completamente o que está acontecendo no código.