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