Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Considerações de desempenho do PDO fetchall()?


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 ...