Mehrzeilige Einfügungen mit PreparedStatement optimieren
Anfangs war das Einfügen von Zeilen in eine MySQL-Tabelle mithilfe einer Schleife und einzelner PreparedStatment-Aufrufe eine gängige Praxis . Um die Leistung zu verbessern, ist jedoch die Verwendung der von MySQL unterstützten Syntax für mehrzeilige Einfügungen wünschenswert.
Batching mit PreparedStatement
Ein PreparedStatement bietet eine Lösung für optimierte mehrzeilige Einfügungen. Zeileneinfügungen durch Stapeln. Durch den Einsatz der PreparedStatement#addBatch()-Methode werden mehrere SQL-Anweisungen in einem Stapel akkumuliert. Diese Anweisungen werden dann gleichzeitig über PreparedStatement#executeBatch() ausgeführt.
Der folgende Beispielcode demonstriert diesen Ansatz:
public void save(List<Entity> entities) throws SQLException { try ( Connection connection = database.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_INSERT); ) { int i = 0; for (Entity entity : entities) { statement.setString(1, entity.getSomeProperty()); // ... statement.addBatch(); i++; if (i % 1000 == 0 || i == entities.size()) { statement.executeBatch(); // Execute every 1000 items. } } } }
Zusätzliche Ressourcen
Weitere Einzelheiten zu dieser Technik finden Sie in den folgenden Ressourcen:
Das obige ist der detaillierte Inhalt vonWie kann PreparedStatement das Einfügen mehrerer Zeilen in MySQL verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!