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

¿La extensión PDO de PHP7 lee todo el conjunto de resultados en la memoria?

No está directamente relacionado con PHP7. El problema se debe al nuevo mysqlnd controlador, por lo que puede experimentar el mismo problema incluso con PHP 5.x también. En realidad, es una corrección de errores, porque incluso antes de que la memoria aún estuviera asignada, pero no contaba para memory_limit .

Para evitar un problema de memoria, debe usar consultas sin búfer para los grandes conjuntos de resultados.

Por lo tanto, para la consulta que espera un gran conjunto de datos, establezca la configuración adecuada de esta manera:

$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

Para leer más, tengo una explicación decente en mi tutorial de PDO , gracias a Nikic, cuyos comentarios críticos fueron invaluables.