Tens alguns poréns nessa historia ne :
Se :
- Ele pegar todos os dados de uma vez, e efetuar os groups, order e tudo mais em memoria, temos o seguinte cenário:
-1 Consulta ao banco, o que gera menos tráfego de rede.
- Dados alocados na memoria volátil,o que e considerado meio perigoso por inumeros fatores.
- Oneração e gerenciamento de memória por parte do client, o que pode ser mais lento do que relacionado a um processamento no server por exemplo.
Caso:
- O order by e o limit seja efetuados no proprio SQL(comando) temos outro cenário:
- Várias consultas ao banco, onerando a rede, mas cada consulta considerando o comando group by por exemplo e bem menor que uma consulta geral como no exemplo acima.
- Maior segurança de integridade dos dados entre outras, pois os mesmos vem "prontos" do banco de dados.
- Oneração e gerenciamento de memória por parte do servidor, o que pode ser mais rápido por exemplo ordenar lá, do que na própria máquina.
Enfim, no meu modo de ver, seria uma questão de escolha e o que mais se adequa ao ambiente em que vai ser utilizado.
Att
Gustavo Luis Hinterholz
9381-8192