Hypotetisk, hvis du skal udskrive alle 100.000 rækker i et enkelt svar, skal du indstille PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
til false
, udfør forespørgslen, og gentag resultatsættet en række ad gangen ved hjælp af fetch . For at uddybe, buffer php hele resultatsættet, uanset om du kalder fetchAll() hvis PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
er sat til sand.
Fordelen er, at du drastisk reducerer det maksimale hukommelsesforbrug for scriptet, og du kommer til at begynde at streame output hurtigere, selvom den samlede tid til færdiggørelse måske eller måske ikke tager længere tid.
Jeg ignorerer andre ting, du bør overveje under sådanne ekstreme omstændigheder, som outputbuffer osv...