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.
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!
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.
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.
Tags und Links mysql file-upload import load-data-infile mysql-management