Встречается на собеседованиях • сегодня
Как решаешь проблему, если в запросе сотни миллионов записей
Использую пагинацию или блочную обработку данных. Например, в JDBC можно использовать `fetchSize` для управления размером выборки, а в JPA — `setFirstResult()` и `setMaxResults()`.
Пример с JDBC:
```java
try (Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)) {
stmt.setFetchSize(1000); // Чтение по 1000 записей за раз
ResultSet rs = stmt.executeQuery("SELECT * FROM huge_table");
while (rs.next()) {
// Обработка данных
}
}
```
Для JPA/Hibernate:
```java
int pageSize = 1000;
int page = 0;
List batch;
do {
batch = entityManager.createQuery("FROM Entity", Entity.class)
.setFirstResult(page * pageSize)
.setMaxResults(pageSize)
.getResultList();
processBatch(batch);
page++;
} while (!batch.isEmpty());
```
Дополнительно можно использовать `Stream` или `Cursor` для ленивой загрузки.

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