it-swarm.com.de

Der Assistent zum Importieren von MySQL-Workbench-Tabellendaten ist extrem langsam

ich muss eine csv-Datei mit 20 Millionen Zeilen und 2 Spalten in eine Datenbank importieren, aber wenn ich versuche, dies mit dem Datenimport-Assistenten von MySQL-Workbench zu tun, ist es extrem langsam. Es wird wahrscheinlich 1 Monat dauern, bis der Vorgang abgeschlossen ist Fortschrittsbalken ... Es muss einen schnelleren Weg geben, dies zu erreichen, hoffe ich ... Ich danke Ihnen vielmals

13
BlueStarry

Verwenden Sie Load Data Infile immer als ersten Versuch für große Datenmengen.

Mysql Manual-Seite zu Load Data Infile .

Ich habe mehrere Antworten auf diese Frage geschrieben, aber für einen Peer-Vergleich siehe die Frage dieses Mannes und meine Answer und seine Zeitvergleiche von Workbench vs. Load Data Infile.

11
Drew

Dies ist eine Alternative. Speichern Sie Ihre CSV-Daten in einem SQL-Skript. Dazu müssen Sie Code aufschreiben. Grundsätzlich werden Ihre CSV-Daten in die folgenden Befehle konvertiert
INSERT INTO TABLE_NAME values(1,2),(1,3),....;
Verwenden Sie jetzt das MySQL-Shell-Skript und den Befehl SOURCE
mysql> source C:/Users/Desktop/sql scripts/script.sql
Ihre Daten werden schneller importiert als beim direkten Import einer CSV für Millionen von Datensätzen.

3
Gaurav Lad

Wenn Sie keinen Code schreiben möchten, empfehle ich einen anderen kostenlosen GUI-Client wie HeidiSQL. Es importiert CSV-/Textdateien viel schneller als MySQL Workbench.

3
malnosna

Laden Sie Data Infile beim Importieren von Datensätzen immer vor. Das Unbequemliche ist, dass Sie vor dem Import eine Tabellenstruktur erstellen müssen. Mit dem Import-Assistenten können Sie im Handumdrehen eine neue Tabelle direkt aus csv oder json erstellen.

Ich denke, der Grund für diese Langsamkeit ist: Workbench verwendet Python für den Importassistenten. Sie können dies im Protokoll des Import-Assistenten sehen, wenn ein Fehler auftritt, das Python-Konsolenprotokoll.

Wenn Sie die Struktur aus irgendwelchen Gründen nicht erstellen möchten, können Sie den Prozess starten. Er erstellt die Tabelle aus der CSV-Datei und bricht den Prozess ab. Dann löschen Sie alles aus Ihrer Tabelle und laden Sie die Daten. Es ist eine Art hässlicher "Hack", aber es hat für mich funktioniert.

1
adnls

Ich hatte ein ähnliches Problem mit der MySQL-Workbench ... Die Alternative, die ich gefunden habe, ist Toad für MySQL ( https://www.toadworld.com/m/freeware/1469 ).

Es würde mich 40 Minuten über MySQL-Admin benötigen, um eine Verbindung zu einem entfernten MySQL-Server herzustellen. Auf dem MySQL-Server selbst dauert der Upload einige Minuten. Mit toad kann ich mich in wenigen Minuten mit dem Remote-Server verbinden und hochladen. Ich habe HeidiSQL ausprobiert, fand es aber nicht so freundlich zu importieren. 

1
Dilan JIvanji