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

Résultats de la requête ORM :tableaux vs poignée de résultat enveloppée dans l'interface Iterator

Cela dépend de la base de données que vous utilisez et de la configuration de votre base de données.

Pour MySQL, vous devez vous assurer que vous utilisez des requêtes mises en mémoire tampon. Dans PDO, vous le définissez comme ceci :

$myPdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);

Cela signifie que toutes les données seront envoyées au client (ce n'est pas la même chose que de tout récupérer en PHP).

L'autre alternative (probablement pire) consiste à ouvrir une nouvelle connexion à la base de données chaque fois que vous détectez une requête en cours d'exécution avec un ensemble de résultats toujours ouvert.

Le mysql_query() normal utilise une requête mise en mémoire tampon, ce qui fonctionnera avec plusieurs ensembles de résultats.