Laden Sie eine CSV-Datei mit 95 GB in die MySQL MyISAM-Tabelle über Ladedaten-Infile hoch: CSV-Engine eine Alternative?

8

Ich versuche, eine CSV Datei mit 95 GB in eine MySQL Datenbank (MySQL 5.1.36) über folgenden Befehl:

%Vor%

Ich führe dieses Skript im Moment über DOS, aber die Datenbank antwortet nicht. Es funktioniert für kleinere CSV-Dateien (1,5 GB) in Ordnung. Würde es für diese Dateigröße funktionieren?

Haben Sie eine Empfehlung, wie Sie dies effizienter / schneller tun können? Wäre Engine = CSV eine Alternative (Indizierung nicht aktiviert! - & gt; also Abfragen können super langsam laufen?).

Aktualisieren

Danke für die Tipps, es hat funktioniert!

%Vor%

Ich hoffe, dass dies für andere hilfreich ist, um zu vermeiden, dass Daten in Blöcken aufgeteilt werden.

    
Janvb 20.11.2009, 07:28
quelle

5 Antworten

1

Sie sollten alle Einschränkungen beim Importieren deaktivieren. Abgesehen davon denke ich, dass es gut funktionieren sollte und dass es eine Weile dauern wird, wahrscheinlich Stunden.

    
RageZ 20.11.2009, 07:37
quelle
3

Kein einfacher Weg, Sie müssen Ihre Daten in Stücke teilen und diese dann importieren ...

    
Sarfraz 20.11.2009 07:45
quelle
0

Bcp? .................................. Oh, Moment mal. Es spielt keine Rolle, es wird eine Massentransaktion sein. Du brauchst Stücke. Sie benötigen es, um eine Überfüllung Ihres Log-Segmentbereichs zu vermeiden. Die Anzahl der Sperren zählt. Alles, was mehr als 1 Million Dinge gleichzeitig ist, ist zu viel. Die bekannteste Batch-Größe für BCP ist also 10.000 Datensätze!

    
user215054 21.11.2009 23:56
quelle
0

Ich stimme den Antworten von RageZ und Sarfraz zu, aber ich möchte etwas hinzufügen.

1. Es kann helfen, den Datenbank-Cache zu erhöhen und einige mysql-Optionen neu zu konfigurieren (RAM-Nutzung).

Sieh dir das an:

Optimieren der MySQL-Datenbankleistung

Ich denke, Sie sollten sich auf write_buffer , read_buffer , query_cache_size und andere RAM- und I / O-Optionen konzentrieren.

2. Sie benötigen wahrscheinlich ein schnelleres Speichergerät. Was verwenden Sie jetzt?

Bei einer großen Datenbank sollten Sie RAID-5-Arrays mit schnellen und modernen Festplatten verwenden.

Vielleicht ist Ihre Konfiguration für alltägliche Aufgaben ausreichend, aber was ist mit Backups und Crysis-Situationen?

Das Erstellen von Sicherungskopien und das Wiederherstellen einer großen Datenbank wird auf der Maschine zu viel Zeit in Anspruch nehmen, was 18 Stunden für den einfachen Einsatzimport erfordert.

Ich weiß, dass 95GB wirklich große Textdatei ist, aber ... ich denke, Sie sollten Hardware verwenden, die in der Lage ist, einfache Operationen wie diese in maximal 2-3 Stunden durchzuführen.

    
Kamil 30.11.2012 22:27
quelle
0

Sie können versuchen, MySQLTuner - in Perl geschriebenes leistungsstarkes MySQL-Tuning-Skript zu verwenden, das Ihnen bei Ihrer MySQL-Konfiguration hilft und Empfehlungen für erhöhte Leistung und Stabilität.

    
kenorb 24.09.2014 17:59
quelle