Hipoteticamente, se você precisar gerar todas as 100.000 linhas em uma única resposta, defina
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
para false
, execute a consulta e itere o conjunto de resultados uma linha de cada vez usando fetch . Para elaborar, o php armazena em buffer todo o conjunto de resultados, independentemente de você chamar ou não fetchAll() se PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
está definido como verdadeiro. O benefício é que você reduz drasticamente o consumo máximo de memória do script e começa a transmitir a saída mais cedo, embora o tempo total para conclusão possa ou não demorar mais.
Estou ignorando outras coisas que você deve considerar em circunstâncias tão extremas, como buffer de saída etc ...