Mysql
 sql >> Base de données >  >> RDS >> Mysql

Considérations sur les performances de PDO fetchall() ?

Hypothétiquement, si vous devez afficher les 100 000 lignes dans une seule réponse, vous devez définir PDO::MYSQL_ATTR_USE_BUFFERED_QUERY à false , exécutez la requête et parcourez le jeu de résultats une ligne à la fois en utilisant fetch . Pour élaborer, php met en mémoire tampon l'ensemble des résultats, que vous appeliez ou non fetchAll() if PDO::MYSQL_ATTR_USE_BUFFERED_QUERY est défini sur vrai.

L'avantage est que vous réduisez considérablement la consommation de mémoire maximale du script et que vous commencez à diffuser la sortie plus tôt, bien que le temps total d'achèvement puisse ou non prendre plus de temps.

J'ignore d'autres choses que vous devriez considérer dans des circonstances aussi extrêmes, comme la mise en mémoire tampon de sortie, etc...