Вопрос проверяет понимание влияния размера batch на производительность и стабильность работы с базами данных.
Batch операции позволяют выполнять несколько запросов к базе данных за одно обращение, что значительно ускоряет обработку больших объемов данных. Однако без ограничения размера batch могут возникнуть серьезные проблемы.
Connection conn = dataSource.getConnection();
conn.setAutoCommit(false);
PreparedStatement ps = conn.prepareStatement("INSERT INTO users (name) VALUES (?)");
int batchSize = 1000;
int count = 0;
for (User user : userList) {
ps.setString(1, user.getName());
ps.addBatch();
count++;
if (count % batchSize == 0) {
ps.executeBatch();
conn.commit();
}
}
ps.executeBatch();
conn.commit();В этом примере batch разбивается на части по 1000 записей, что предотвращает перегрузку базы и памяти.
Ограничение размера batch — это практика, обеспечивающая стабильность и производительность при массовой обработке данных. Рекомендуется выбирать размер batch на основе тестов в конкретной среде, обычно от 500 до 2000 записей.