Consultas con o sin almacenamiento en memoria
  
   Las consultas utilizan por omisión el modo de almacenamiento en memoria.
   Esto significa que el resultado de las consultas se transfiere inmediatamente
   del servidor MySQL a PHP y se conserva en la memoria
   del proceso PHP. Esto permite operaciones complementarias
   como contar el número de resultados, y desplazar el
   puntero de resultado actual. También permite ejecutar consultas adicionales
   sobre la misma conexión mientras se trabaja con el conjunto de resultados. La desventaja del almacenamiento en memoria es que los conjuntos de resultados grandes pueden requerir
   mucha más memoria. La memoria permanecerá ocupada hasta que
   todas las referencias a los conjuntos de resultados sean desactivadas o que los conjuntos de resultados sean liberados explícitamente,
   lo cual ocurre de manera automática al final del
   proceso. La terminología "store result" también se utiliza con el modo de almacenamiento en memoria, ya que la totalidad de los resultados
   se almacenan a la vez.
  
  Nota: 
   
    Cuando se utiliza libmysqlclient como biblioteca, el límite de memoria de PHP no contará la memoria utilizada para los
    conjuntos de resultados a menos que los datos sean leídos en las variables PHP. Con mysqlnd, la memoria utilizada incluirá
    el conjunto de resultados completo.
   
  
  
   Las consultas sin almacenamiento en memoria, las consultas MySQL ejecutan su consulta y luego esperan
   que los datos del servidor MySQL sean recuperados. Esto utiliza menos memoria
   en el lado de PHP, pero puede aumentar la carga
   en el servidor. A menos que el conjunto de resultados completo haya sido
   recuperado desde el servidor, ninguna otra consulta puede ser
   enviada sobre la misma conexión. Las consultas sin almacenamiento en memoria también pueden hacer referencia a un
   "use result". Una vez que todas las líneas del conjunto de resultados
   han sido recuperadas, el conjunto de resultados desaparece y ya no es posible recorrerlo nuevamente.
  
  
   Siguiendo estas características, las consultas sin almacenamiento en memoria deben ser utilizadas únicamente
   cuando se espera obtener un gran conjunto de resultados que será procesado secuencialmente.
   Las consultas sin almacenamiento en memoria presentan varias trampas que las hacen más
   difíciles de utilizar, por ejemplo el número de líneas en el conjunto de resultados no es conocido
   antes de que la última línea sea recuperada.
  
  
   Debido a que las consultas son almacenadas en memoria
   por omisión, los ejemplos a continuación muestran cómo
   ejecutar consultas, con cada API, sin almacenamiento en memoria.
  
  
   Ejemplo #1 Ejemplo de consultas sin almacenamiento en memoria: mysqli
   
<?php
$mysqli  = new mysqli("localhost", "my_user", "my_password", "world");
$unbufferedResult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT);
foreach ($unbufferedResult as $row) {
    echo $row['Name'] . PHP_EOL;
}
?>
    
   
  
   Ejemplo #2 Ejemplo de consultas sin almacenamiento en memoria: pdo_mysql
   
<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_password');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
$unbufferedResult = $pdo->query("SELECT Name FROM City");
foreach ($unbufferedResult as $row) {
    echo $row['Name'] . PHP_EOL;
}
?>