phpbar.de logo

Mailinglisten-Archive

[php] einlesen 20000 Datensätze in MySQL

[php] einlesen 20000 Datensätze in MySQL

Kai M. Becker kmb at kai-m-becker.de
Di Jun 7 11:35:24 CEST 2011


Am 11-06-07 10:16, schrieb Stephan Krauß:
> Momentan beschäftige ich mich mit dem einlesen von großen
> Datenmengen. Ich bekomme alle 20 Minuten ein XML - File.
> Dieses XML - File muss entsprechend aufbereitet werden und
> in eine Tabelle in einer MySQL - Datenbank gelesen werden.

Meine Lösung (läuft seit ein paar Jahren): Zuerst per XSLT aus dem XML ein 
CSV machen. Der XSLT-Prozessor ist meiner Beobachtung nach erheblich 
schneller als die händische Verarbeitung von XML in PHP. Wenn aus dem XML 
verschiedene Tabellen zu bedienen sind schaden auch mehrere XSL-Skripte 
nichts. In meinem Fall mussten einerseits Kopfdaten extrahiert werden, zum 
anderen lange Datenreihen.

Das, bzw. die CSV-Daten habe ich dann zeilenweise in PHP verarbeitet, weil 
Oracle kein CSV einlesen kann. Für MySQL gäbe es diese Möglichkeit ja ("LOAD 
DATA INFILE").

Wenn Du zeilenweise in PHP arbeiten musst (Plausicheck der Daten?), würde 
ich diese Multi-Insert-Zeilen bilden, die Robert Hartung beschrieben hat.

set_time_limit() wird Dir aber kaum erspart bleiben.

    Kai

-- 
       == Kai M. Becker == kmb at kai-m-becker.de == Bremen, Germany ==
  "Any technology distinguishable from magic is insufficiently advanced"

php::bar PHP Wiki   -   Listenarchive