Ipoteticamente, se devi generare tutte le 100.000 righe in una singola risposta, dovresti impostare PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
a false
, esegui la query e ripeti il set di risultati una riga alla volta utilizzando fetch . Per elaborare, php bufferizza l'intero set di risultati indipendentemente dal fatto che tu chiami o meno fetchAll() if PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
è impostato su true.
Il vantaggio è che riduci drasticamente il consumo massimo di memoria dello script e puoi avviare lo streaming dell'output prima, anche se il tempo totale per il completamento può richiedere o meno più tempo.
Sto ignorando altre cose che dovresti considerare in circostanze così estreme, come il buffering dell'output ecc...