Hallo zusammen,
ich habe eine Anwendung geschrieben, die mit einer MySql-Datenbank arbeitet.
Die Datenbank liegt lokal auf dem Rechner.
Im Internet lese ich ständig, dass das Erzeugen / Updaten von Datensätzen mit einem Batch schneller sein soll, als wenn man die Datensätze einzeln erzeugt.
Ich habe einen kleinen Test geschrieben, der jeweils 1000 Datensätze erzeugt. Ein mal mit Hilfe eines PreparedStatements, das wiederholt aufgerufen wird, und ein mal (das gleiche Statement) mit einem Batch.
Das Erzeugen mit dem PreparedStatement dauert zwischen 5 und 6 Sekunden.
Das Erzeugen mit dem Batch allerdings immer eine Sekunde länger!
Ich verstehe aber nicht warum. Wie kann das sein?
Liegt es möglicherweise am JDBC Treiber? Oder an MySql?
Oder ist der Batch nur vorteilhaft, wenn die Anfrage über ein Netzwerk gesendet wird?
Wäre schön, wenn da jemand klarheit schaffen könnte.
Danke!