Spíše než se pokoušet sestavit strom objektů, můžete přímo zkusit vybrat výsledek do souboru:http://dev.mysql.com/doc/refman/5.7/en/select.html
Něco jako
SELECT * INTO OUTFILE "c:/temp/mycsv.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM theTable;
To by mělo ponechat úlohu na mysql a obejít všechna omezení paměti php.
Jak poznamenal venca:V tomto případě potřebuje uživatel, pod kterým spouštíte službu mysql, oprávnění k zápisu do příslušného adresáře.