Hypotetiskt, om du behöver mata ut alla 100 000 rader i ett enda svar, bör du ställa in PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
till false
, kör frågan och iterera resultatuppsättningen en rad i taget med hämta . För att utarbeta, buffrar php hela resultatuppsättningen oavsett om du anropar fetchAll() om PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
är satt till sant.
Fördelen är att du drastiskt minskar den maximala minnesförbrukningen för skriptet, och du kan börja streama utdata tidigare, även om den totala tiden till färdigställande kanske eller inte kan ta längre tid.
Jag ignorerar andra saker du bör tänka på under sådana extrema omständigheter, som utdatabuffring etc...