Viele Datensätze mit JDBC performant in MySQL schreiben

23.03.2015

Neulich musste ich ca. 3 Mio. Datensätze in eine MySQL-Datenbank schreiben und nutzte dafür JDBC & PreparedStatements. Obwohl ich die Inserts via Batch machte, dauerte das Einfügen jeweils ca. 2 Minuten pro Batch (10.000 Datensätze).
Daraufhin recherchierte ich diesen StackOverflow-Post, der mir half, die Performance wesentlich zu verbessern, und zwar durch Hinzufügen zweier Parameter zur Datenbank-URL:

Connection c = DriverManager.getConnection("jdbc:mysql://host:3306/db?useServerPrepStmts=false&rewriteBatchedStatements=true", "username", "password");

Danach dauerte das Einfügen nur noch wenige Sekunden pro 10.000 Datensätze. Von voraussichtlich einem knappen Tag für alle Datensätze konnte ich die Schreibdauer auf wenige Minuten reduzieren.

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*