sql >> Base de Datos >  >> RDS >> Mysql

¿Consideraciones de rendimiento de PDO fetchall ()?

Hipotéticamente, si necesita generar las 100 000 filas en una sola respuesta, debe establecer PDO::MYSQL_ATTR_USE_BUFFERED_QUERY a false , ejecute la consulta e itere el conjunto de resultados una fila a la vez usando fetch . Para elaborar, php almacena en búfer todo el conjunto de resultados independientemente de si llama o no a fetchAll() si PDO::MYSQL_ATTR_USE_BUFFERED_QUERY se establece en verdadero.

El beneficio es que reduce drásticamente el consumo máximo de memoria del script y puede comenzar a transmitir la salida antes, aunque el tiempo total para completarlo puede o no tomar más tiempo.

Estoy ignorando otras cosas que debería considerar en circunstancias tan extremas, como el almacenamiento en búfer de salida, etc...