sql >> Databáze >  >> RDS >> Mysql

Načte PDO ext PHP7 celou sadu výsledků do paměti?

Nesouvisí přímo s PHP7. Problém je způsoben novým mysqlnd ovladač, takže stejný problém můžete zažít i s PHP 5.x. Je to vlastně oprava chyby, protože dokonce i předtím, než byla paměť stále přidělena, ale nezapočítávala se do memory_limit .

Chcete-li se vyhnout problému s pamětí, musíte použít dotazy bez vyrovnávací paměti pro velké sady výsledků.

Takže pro dotaz, který očekává velkou datovou sadu, nastavte správné nastavení takto:

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

Pro další čtení mám slušné vysvětlení v mém tutoriálu PDO , díky Nikic, jehož kritická zpětná vazba byla neocenitelná.




  1. Skutečný max_execution_time pro PHP na linuxu

  2. Jak použít klauzuli Haveing ​​with Group by in Select Query - SQL Server / TSQL Tutorial, část 131

  3. Je SQLFiddle nefunkční? Chyby pro Oracle, SQL Server, ...?

  4. Použití % pro hostitele při vytváření uživatele MySQL