sql >> Databasteknik >  >> RDS >> Mysql

Läser PHP7:s PDO ext hela resultatuppsättningen i minnet?

Det är inte direkt PHP7-relaterat. Problemet beror på nya mysqlnd drivrutin, så att du kan uppleva samma problem även med PHP 5.x också. Det är faktiskt en buggfix, eftersom till och med innan minnet fortfarande tilldelades, men det räknades inte mot memory_limit .

För att undvika ett minnesproblem måste du använda obuffrade frågor för de stora resultatuppsättningarna.

Så, för frågan som förväntar sig en stor datamängd, ställ in rätt inställning så här:

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

För vidare läsning har jag en anständig förklaring i min PDO-handledning , tack vare Nikic, vars kritiska feedback var ovärderlig.




  1. Hur man inkluderar en PHP-variabel i en MySQL-sats

  2. Använd APP_NAME() för att hämta applikationsnamnet för den aktuella sessionen i SQL Server

  3. Lokala och globala temporära tabeller i SQL Server

  4. Kan MySQL använda Index när det finns ELLER mellan villkoren?