Hier ist der Deal:
conn
mit dem DriverManager
conn.autoCommit(false);
festgelegt
PreparedStatement pStat = conn.prepareStatement(insert_string_with_parameter);
pStat.addBatch();
hinzu
addBatch()
10000 mal an), rufe ich pStat.executeBatch();
an
pStat.clearBatch()
gleich nach Auch wenn all das oben für mich gut klingt, ist das LANGSAM !!! .
Ich habe durchschnittlich nur 35 Datensätze (nur 8 Spalten insgesamt, nur ein technischer automatisch inkrementierter Primärschlüssel und einige Nicht-Null-Bedingungen) pro Sekunde. Ich berechne, dass ich eine Woche brauche, um alle meine 20 Millionen Zeilen einzufügen ...
Mache ich etwas falsch?
Wie viele Zeilen sollte ich bei jedem Stapelzyklus hinzufügen? Sind 10000 zu viele?
Wenn Sie MySQL mit einem JDBC-Treiber für Version 5.1.7 verwenden, können Sie von einem Fehler betroffen sein Das verlangsamt Batch-Einsätze . Das Aktualisieren auf 5.1.10 oder höher sollte vorsichtig sein davon.
Tags und Links java performance insert jdbc batch-file