Spring JDBCTemplate vs Plain JDBC für das einfügen einer großen Anzahl von Datensätzen
Wir haben, fügen Sie 2 Millionen von Datensätzen über mehrere Tabellen hinweg und jetzt sind wir das schreiben in eine CSV-Datei und Verwendung von db2-import-laden in die Datenbank.
Wollten wir ändern diese Logik zu irgendeiner Art von JDBC. Während sich in mehrere Optionen, ich bin verwirrt mit Spring JDBC-template und plain JDBC.
Lassen Sie uns sagen, ich wollte Sie 1 Millionen Datensätze in 10 Tabellen, von denen jede 100 tausend, und alle diese sind einfache JDBC-Anweisungen (keine prepared statements, weil ich nicht weiß, welche Tabelle ich beschäftige mich mit zur Laufzeit).
Egal welches system wir wählen müssen, Griff einstecken von bis zu 15 Millionen Datensätze, die für eine peak-Anfrage.
Welches framework besser sein wird?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, um eine Menge von Daten, dann mithilfe von JDBC (oder alle Gebäude der Bibliothek auf der Oberseite des JDBC) kann eine schlechte Wahl, im Vergleich zur Verwendung der bulk-copy tools (wie db2import). JDBC geht um Größenordnungen langsamer, weil
JDBC ist ein sehr Gesprächiges Protokoll, und
in der Regel bulk-copy-tools, entspannen Zwänge während des Kopie Prozesses.
Den Unterschied in der Zeit kann extrem werden: was braucht der bulk-copy-tool 10-Minuten-Stunden dauern kann mithilfe von JDBC. Sie wollen werde, um einen Prototypen zu erstellen und einige timings und sicher sein, über welche Art von Leistung Sie erhalten, bevor Sie verpflichten, um so etwas wie dieses.
Wenn Sie bereits mit Feder, dann kann man ebenso gut verwenden
JdbcTemplate
. Es macht die Dinge ein wenig einfacher und in einigen einfachen Fällen bedeutet, dass Sie nicht verwenden die JDBC-API direkt auf sich selbst. Im wesentlichenJdbcTemplate
ist ein sehr dünner wrapper um die JDBC-entfernt einige Ihrer lästigen boiler-plate-code.Als skaffman sagte, wenn Sie schon mit Frühling dann Ihre Wahl ist wahrscheinlich
JdbcTemplate
. Speziell möchten Sie vielleicht Blick auf diebatchUpdate()
Methode. Hier ist ein ziemlich gutes Beispiel dafür, wie es funktioniert. Ich habe es verwendet zum einfügen von ein paar hundert tausend Zeilen schnell mit großem Erfolg.Betrachten JdbcSession von jcabi-jdbc. Es ist so einfach wie JDBC werden sollten, zum Beispiel (einfügen einer million Datensätzen):
Das ist es.