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

Pochopení využití paměti výsledkem MySQL v PHP (PDO)

Je těžké dát konkrétní odpověď, aniž byste viděli svůj konkrétní kód. Jak již bylo řečeno, datové struktury PHP, jako jsou pole, jsou asociativní. Tvůrci PHP záměrně udělali kompromis a použili extra RAM, aby ušetřili čas na přístup k poli.

Paměť můžete ušetřit několika způsoby. Za prvé, každý řádek sady výsledků můžete načíst jako číselný, nikoli jako asociativní pole. Přečti si tohle. http://php.net/manual/en/mysqli-result .fetch-array.php

Za další věc, PHP vrhne všechny řádky ve vaší sadě výsledků najednou, pokud mu to neřeknete. Tato operace slurp spotřebovává hodně paměti RAM. To nepotřebujete, pokud plánujete zpracovávat svou velkou sadu výsledků jeden řádek po druhém. Potřebujete dotaz bez vyrovnávací paměti udělat to. Přečtěte si toto:http://php.net/manual/en/mysqlinfo. concepts.buffering.php



  1. Spouštěče PHP MySQL – Jak předat proměnné ke spouštění?

  2. Praktické omezení délky SQL dotazu (konkrétně MySQL)

  3. Různé reprezentace UUID v Java Hibernate a SQL Server

  4. Chyba tabulky MySQL neexistuje, ale existuje