Встречается на собеседованиях • сегодня
Как можно ускорить запросы в базе данных
1. **Индексы** – создание индексов на часто используемых полях (WHERE, JOIN, ORDER BY).
```java
// Hibernate аннотация для индекса
@Entity
@Table(indexes = @Index(columnList = "email"))
public class User { ... }
```
2. **Оптимизация запросов** – избегать SELECT *, использовать пагинацию (LIMIT/OFFSET), кэшировать результаты.
3. **JOIN вместо N+1** – использовать FETCH JOIN в Hibernate:
```java
@Query("SELECT u FROM User u JOIN FETCH u.orders")
List findAllWithOrders();
```
4. **Batch-обработка** – группировка INSERT/UPDATE через `rewriteBatchedStatements=true` в JDBC.
5. **Кэширование** – Redis/Hazelcast для часто читаемых данных.
6. **Настройка пула соединений** (HikariCP) – правильные размеры пула под нагрузку.
7. **Анализ EXPLAIN** – выявление узких мест в запросе.
8. **Партиционирование** – разделение больших таблиц по датам или диапазонам.
9. **Репликация** – чтение с реплик для распределения нагрузки.
10. **NoSQL** – для специфичных сценариев (например, MongoDB для документов).

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