Bearbeiten von gro├čen Datenmengen in PHP

21.01.2012 17:44 Uhr

Hallo zusammen,

ich habe eine Projekt, in dem eine große Menge Datensätze ( rund 6 Millionen Zeilen in einer Key-Value Tabelle, Oracle ) auf Anforderung einlesen, analysiert und dann via Excel exportiert werden müssen. Damit die Werte analysiert werden können, müssen eine Menge Objekte zusammengebaut werden, was unter anderem den Arbeitsspeicher in die Höhe treibt.

Ein Durchlauf, der auf der Kommandozeile eines Linuxservers gestartet wird, dauert in der Regel 1 Stunde und benötigt so circa 4 GB an Arbeitsspeicher.

Dies ist sehr unbefriedigend und unsere Systemadministratoren steigen mir jedesmal aufs Dach. Insgesamt bin ich der Meinung, das PHP für diesen Job nicht gemacht wurde, und suche deshalb nach Möglichkeiten dies in einer anderen Sprache performanter zu gestalten.

Hat jemand einen Tipp?

2 Antworten

#1

22.01.2012 15:38 Uhr

PL/SQL vielleicht hilft dir das.

ich habe damit nie gearbeitet, nur gelesen, da du aber Oracle für die Datenhaltung hast, sollte es passen. Resultat wäre toll, wenn du mal hier reviewst.

#2

22.01.2012 16:04 Uhr

6 Millionen Datensätze sollte auch PHP schaffen. Die Frage ist, was du damit in deinem Script machst. Eventuell kannst du einen Teil der Berechnungen bereits von der Datenbank erledigen lassen.

Auf jeden Fall kann etwas Profiling nicht schaden. Wo geht die meiste Zeit drauf? Welche Datenstrukturen deines Analysetools verbrauchen den meisten RAM? Dort anpacken und optimieren.

Erst wenn du der Meinung bist, dass es nichts mehr zu optimieren gibt, würde ich den Schritt zu einer anderen Sprache nehmen. Welche? Keine Scriptsprache, irgendwas das kompiliert. Was auch immer du kennst ... Scala, Java, C++, ...



Datenschutzerklärung · Impressum