Встречается на собеседованиях • сегодня
Как решишь проблему с SELECT запросом к БД, который сильно нагружает процессор
Оптимизация SELECT запроса включает несколько подходов:
1. **Индексы** - добавление индексов на часто используемые колонки в WHERE и JOIN
```java
// Пример создания индекса через JPA
@Table(indexes = @Index(name = "idx_user_email", columnList = "email"))
@Entity
public class User { ... }
```
2. **Оптимизация запроса**:
- Избегать SELECT * (выбирать только нужные поля)
- Использовать LIMIT для пагинации
- Оптимизировать JOIN'ы и подзапросы
3. **Кэширование** результатов через Spring Cache или Hibernate L2 Cache:
```java
@Cacheable("users")
public List findActiveUsers() { ... }
```
4. **Профилирование** запроса через EXPLAIN ANALYZE для выявления узких мест
5. **Шардинг/партиционирование** больших таблиц
6. **Реализация read replica** для распределения нагрузки
Для сложных случаев можно рассмотреть denormalization данных или использование специализированных хранилищ (Elasticsearch, Redis).

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