Produktexport überschreiben?!

Moin :slight_smile:

Welche Möglöichkeit habe ich, den Produktexport zu überschreiben?

Grund: wir haben 200.000+ Artikel im Shop und der Export bricht mir bei Ausführen der Query mit einem Memory Allocation Error ab … die 256MB reichen ihm nicht. Es reichen auch keine 512MB und auch 1G reicht nicht. Genau genommen läuft der Export erst, wenn ich hart in die sExport.php in executeExport() ein ini_set(‚Memory_limit‘, ‚-1‘); setze. Und dann wird in htop alles rot :frowning:

Wenn ich mir das SQL ansehe, was an dieser Stelle verarbeitet werden soll, wundert mich das auch nicht.

 

Meine Idee: mit Limit und Offset arbeiten und in Stücken auslesen/ausgeben. Aber wie?

Vielleicht so?

https://www.tutorialspoint.com/retrieve-a-large-select-by-chunks-in-mysql

 

Ja, nee :slight_smile:

Wie man mit LIMIT und OFFSET arbeitet, ist mir schon klar. Es ging mir darum, dass die sExport.php ein altes Core-Modul ist, das nicht als Service deklariert ist (jedenfalls wüsste ich das dann nicht) und eben nicht dekoriert werden kann.

Ich hab’s jetz so gelöst: ich habe das entsprechende Consolen-Kommando gecloned und eine eigene Export.php, die von sExport.php ableitet und binde die dann entsprechend ein.

Das SQL, welches gebaut wird, habe ich auch gleich noch ausgedünnt, sodass der ganze Spaß mit knapp 1,5G RAM auskommt … da das in der CLI läuft, ist das auch kein Problem.