Встречается на собеседованиях • сегодня
Как решишь проблему долгого запроса в БД
Есть несколько подходов для оптимизации долгих SQL-запросов:
1. **Индексы** - добавление правильных индексов на часто используемые колонки в WHERE/JOIN/ORDER BY:
```java
// Для Spring Data JPA
@Table(indexes = @Index(name = "idx_user_email", columnList = "email"))
@Entity
public class User { ... }
```
2. **Оптимизация запроса** - избегать SELECT *, использовать JOIN вместо подзапросов, ограничивать выборку LIMIT.
3. **Кэширование** - Spring Cache для часто читаемых данных:
```java
@Cacheable("users")
public User getUserById(Long id) { ... }
```
4. **Пагинация** - разбивка на страницы:
```java
Page users = userRepository.findAll(PageRequest.of(0, 20));
```
5. **Асинхронная обработка** - для тяжелых отчетов использовать @Async.
6. **Профилирование** - EXPLAIN ANALYZE в PostgreSQL для анализа плана выполнения.
Важно сначала определить узкое место через мониторинг (например, Spring Actuator + Prometheus).

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