Część problemu z tak ogromnym eksportem jest (przypuszczalnie) z powodu zwolnień w nim. Prawdopodobnie istnieją tysiące poleceń „INSERT”, które po załadowaniu wszystkich na raz zajmują ogromny kawałek pamięci.
Jeśli masz dokładnie te same dane, co plik CSV, chciałbym utworzyć mały skrypt PHP, który będzie przechodził linia po linii przez plik CSV i dynamicznie tworzy zapytanie INSERT sql, a następnie je wykonuje. Powinno to sprawić, że wykorzystanie pamięci będzie bardzo małe, ponieważ możesz zamieniać wartości zmiennych tymczasowych (odpowiadających polom) po każdym wstawieniu.
Połączyłem się z funkcją, której chciałbym użyć. Nazywa się fgetcsv. Ten link zawiera również przykładowe skrypty, które, jak sądzę, mogą Ci się przydać, a które zostały utworzone przez innych użytkowników.
Powodzenia!
Funkcja fgetcsv PHP używana do odczytu linia po linii