Hipotéticamente, si necesita generar las 100 000 filas en una sola respuesta, debe establecer PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
a false
, ejecute la consulta e itere el conjunto de resultados una fila a la vez usando fetch . Para elaborar, php almacena en búfer todo el conjunto de resultados independientemente de si llama o no a fetchAll() si PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
se establece en verdadero.
El beneficio es que reduce drásticamente el consumo máximo de memoria del script y puede comenzar a transmitir la salida antes, aunque el tiempo total para completarlo puede o no tomar más tiempo.
Estoy ignorando otras cosas que debería considerar en circunstancias tan extremas, como el almacenamiento en búfer de salida, etc...