Zamiast próbować budować drzewo obiektów, możesz bezpośrednio spróbować wybrać wynik do pliku:http://dev.mysql.com/doc/refman/5.7/en/select.html
Coś jak
SELECT * INTO OUTFILE "c:/temp/mycsv.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM theTable;
Powinno to pozostawić zadanie w mysql i ominąć wszelkie ograniczenia pamięci php.
Jak zauważył venca:w tym przypadku użytkownik, pod którym działa usługa mysql, potrzebuje uprawnień do zapisu w danym katalogu.