Как работают batch операции в JDBC и сколько это ускоряет?

Middle
268 просмотров
AFK Offer AI

JDBC batch: PreparedStatement.addBatch() накапливает, executeBatch() отправляет все за один round-trip. Вместо N * (network latency + parse + execute) получаем 1 * (network latency) + N * execute. На практике batch 1000 записей в 10-100 раз быстрее поштучной вставки. rewriteBatchedStatements=true в PostgreSQL JDBC URL — реально объединяет запросы в один SQL. Spring Data JPA: spring.jpa.properties.hibernate.jdbc.batch_size=50. Важно: не делать огромные батчи — flush каждые N записей.

Следующий вопрос

Реализуйте иммутабельный класс с мутабельным полем (defensive copy)