Frage

Ok Jungs, die ich auf den Wikipedia-xml-Dump und sein sattes 12 GB an Daten heruntergeladen habe: \ für einen Tisch und ich wollte es in mysql databse auf meinem localhost importieren - aber es ist eine gigantische Datei 12GB und offensichtlich navicats seine Einnahme süße Zeit ihn selbst oder sein eher sein gehängt importieren. (

Gibt es eine Möglichkeit, diese Dump enthält oder zumindest teilweise höchstens Sie wissen, Stück für Stück.


Lassen Sie mich richtig, dass sein 21 GB Daten - nicht, dass es hilft. \ - hat jemand eine Ahnung von dem Import humongous Dateien wie diese in MySQL-Datenbank

War es hilfreich?

Lösung

Verwenden Sie die Befehlszeile stattdessen navicat schrecklich große Dateien für den Import und dauert wahrscheinlich 20x länger als die CLI verwenden.

Andere Tipps

Werfen Sie einen Blick in Sax-Parser es Sie im Corpus Stück für Stück lesen können anstatt die ganze 12GB in den Speicher zu lesen. Ich bin mir nicht sicher, wie Sie es mit MySQL-Schnittstelle würde aber.

Dies ist eine recht alte Frage, FWIW .. mit einer neuen Antwort erfrischend. Ich habe die gleichen Probleme auftritt und Stunden für eine einzige massive SQL-Datei sitzt laufen kann riskant sein, und lief in Probleme im Grunde bedeutet, dass Sie alle wieder von vorn anfangen. was ich tat, um das Risiko und gewinnen einige Performance via CLI.

reduzieren
  1. spalten die massive SQL-Datei in kleinere überschaubare Einheiten, zum Beispiel 'enwiki-20140811-page.sql' aufgeteilt in etwa 75 MB große Dateien.

    split -l 75 enwiki-20140811-page.sql split_
    

    wird eine angemessene Anzahl von Dateien erzeugen mit dem Präfix ‚split_‘ im Dateinamen.

  2. iterate über diese Dateiliste und importiert einen nach dem anderen ... einem einfachen Shell-Skript als solche.

    for f in $FILES
    do
      echo "Processing $f file..."
      mysql -h $HOST -u $USER -p$PSWD $DB < $f
    done
    

, wenn dies jemals aus irgendeinem Grund bricht, können Sie leicht wieder aufnehmen, wo Sie aufgehört haben.

spliting die SQL-Datei über Zeilenzahl verhindert, dass große INSERT-Anweisungen zu brechen. Allerdings, wenn Sie die Zeilenzahl zu niedrig fallen, könnten Sie DROP aufgeteilt und CREATE-Anweisungen am Anfang des SQL. Dies ist leicht fixiert, indem die ersten Split-Dateien zu öffnen und zu lösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top