sql >> Database >  >> RDS >> Mysql

PDO mislukt met te veel records, gebufferde query's

Wanneer u een niet-gebufferde query gebruikt, betekent dit dat uw resultatenset wordt gestreamd vanaf de MySQL-server. Dus de verbinding waarop de (ongebufferde) query wordt uitgevoerd, is bezet totdat u de laatste rij van de query leest. In jouw geval is de verbinding $MysqlConn .

(Een gebufferde zoekopdracht slurpt de volledige resultatenset in het RAM-geheugen van uw php-programma en maakt de verbinding vrij. U gebruikt niet-gebufferde zoekopdrachten wanneer uw hele resultatenset niet in het RAM past).

Niet-gebufferde query's moeten expliciet worden gesloten als u klaar bent met hen. Dus voeg een closeCursor() toe bel . Vind dit leuk.

while ($row = $ordStat->fetch(PDO::FETCH_ASSOC)) {
    $order_ids[] = $row['order_id'];
}
$ordStat->closeCursor();

Het kan ook geen kwaad om gebufferde query's te sluiten. Het is een goede gewoonte.




  1. TO_DAYS() Voorbeelden – MySQL

  2. PHP PDO hoe een multiple query request uit te voeren?

  3. Een xml-bestand ontleden en opslaan in een database

  4. Knee-Jerk Wait-statistieken:CXPACKET