sql >> Database >  >> RDS >> Mysql

Leest de PDO ext van PHP7 de volledige resultatenset in het geheugen?

Het is niet direct PHP7-gerelateerd. Het probleem is te wijten aan nieuwe mysqlnd driver, dus u kunt hetzelfde probleem zelfs met PHP 5.x ervaren. Het is eigenlijk een bugfix, want zelfs voordat het geheugen nog was toegewezen, maar het telde niet mee voor memory_limit .

Om geheugenproblemen te voorkomen, moet u niet-gebufferde zoekopdrachten gebruiken voor de grote resultaten.

Dus, voor de query die een grote dataset verwacht, stel de juiste instelling als volgt in:

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

Voor meer informatie heb ik een fatsoenlijke uitleg in mijn PDO-tutorial , met dank aan Nikic, wiens kritische feedback van onschatbare waarde was.




  1. PHP/SQL-database met vragen over goede praktijken en beveiliging

  2. SQL-query om het aantal keren te tellen dat bepaalde waarden in meerdere rijen voorkomen

  3. Excel-datumnummer wijzigen in Oracle-datum

  4. Waarom wordt de MySQL-verbinding geblokkeerd door veel verbindingsfouten?