it-swarm.com.de

beste Weg, um 500 MB CSV-Datei in MySQL-Datenbank zu importieren?

Ich habe eine 500 MB große CSV-Datei, die in meine MySQL-Datenbank importiert werden muss.

Ich habe ein PHP Skript geschrieben, in das ich die CSV-Datei hochladen kann, das die Felder analysiert und den eigentlichen Import vornimmt. es können aber nur kleine dateien von max. 5 MB. Also das sind 100 Dateien und eigentlich ziemlich langsam (Upload)

Gibt es eine andere Art und Weise? Ich muss diesen Vorgang jeden Monat wiederholen, da sich die Daten in der Datei jeden Monat ändern und es sich um ungefähr 12 Millionen Zeilen handelt.

5
mars

Wenn Sie wissen, dass die Datei konsistent geformte CSV-Dateien enthält (es gibt keinen Standard, daher sollten Sie diese wahrscheinlich ausgiebig testen, bevor Sie sie über Produktionstabellen importieren), können Sie PHP überspringen und MySQLs LOAD DATA INFILE Anweisung nach dem Hochladen der Daten auf den Server.

(Wenn Sie keinen sofortigen Zugriff auf die MySQL-Konsole auf dem Server haben, kann dies auch mit einem sehr einfachen PHP -Skript oder mit phpMyAdmin erfolgen.)

4
danlefree

Der beste Weg, dies zu tun, wäre:

  • mit einem Tool wie [SQLyog], das eine kostenlose "Community" -Version enthält, können Sie hier herunterladen.
    Möglicherweise finden Sie nützliche SQLyog FAQ zu Importieren von CSV-Daten

  • importiere es [via SSH] [4] (Du kannst den Datenbank-Dump per FTP übertragen und dann einfach ausführen
    mysql -p -u username database_name < file.sql

1
Boris Brdarić