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

Aspekty výkonu PDO fetchall()?

Hypoteticky, pokud potřebujete vytisknout všech 100 000 řádků v jediné odpovědi, měli byste nastavit PDO::MYSQL_ATTR_USE_BUFFERED_QUERY na false , spusťte dotaz a iterujte sadu výsledků jeden řádek po druhém pomocí fetch . Pro podrobnější vysvětlení ukládá php do vyrovnávací paměti celou sadu výsledků bez ohledu na to, zda zavoláte fetchAll() nebo ne, pokud PDO::MYSQL_ATTR_USE_BUFFERED_QUERY je nastaveno na hodnotu true.

Výhodou je, že výrazně snížíte maximální spotřebu paměti skriptu a můžete začít streamovat výstup dříve, ačkoli celková doba dokončení může nebo nemusí trvat déle.

Ignoruji další věci, které byste měli vzít v úvahu za takových extrémních okolností, jako je ukládání do vyrovnávací paměti atd...



  1. Jak obnovit databázi MySQL ze souborů .myd, .myi, .frm

  2. Jak Atan() funguje v PostgreSQL

  3. Ověření a vložení formuláře PHP pomocí MySql

  4. Bude to uloženo na stránce?