Встречается на собеседованиях • сегодня
Как оптимизировать медленные запросы на вставку в БД после добавления индексов
Используйте batch-вставки вместо одиночных INSERT. Например, в JDBC:
java
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
try (Connection conn = dataSource.getConnection();
PreparedStatement ps = conn.prepareStatement(sql)) {
conn.setAutoCommit(false);
for (User user : users) {
ps.setString(1, user.getName());
ps.setString(2, user.getEmail());
ps.addBatch();
if (i % 1000 == 0) { // Периодически выполняем
ps.executeBatch();
}
}
ps.executeBatch(); // Оставшиеся записи
conn.commit();
}Другие методы:
- Временное отключение индексов перед массовой вставкой
- Использование COPY вместо INSERT (PostgreSQL)
- Увеличение размера batch-блоков (1000-5000 записей)
- Оптимизация структуры индексов (удаление избыточных)

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы