Встречается на собеседованиях • сегодня

Как будешь оптимизировать запрос к БД при большом количестве данных

Для оптимизации запросов к БД с большими данными: 1. **Индексы** - создание индексов на часто используемых полях в WHERE, JOIN, ORDER BY: ```java @Entity @Table(indexes = @Index(name = "idx_email", columnList = "email")) public class User { ... } ``` 2. **Пагинация** - использование LIMIT/OFFSET или keyset-пагинации: ```java Page users = userRepository.findAll(PageRequest.of(0, 50)); ``` 3. **Выборка только нужных полей** через проекции: ```java interface UserNameProjection { String getName(); } @Query("SELECT u.name FROM User u WHERE u.active = true") List findActiveUserNames(); ``` 4. **Кэширование** часто запрашиваемых данных (Spring Cache, Hibernate L2 cache) 5. **Оптимизация JOIN** - замена на подзапросы или lazy loading 6. **Анализ EXPLAIN** для понимания плана выполнения запроса 7. **Пакетная обработка** для массовых операций: ```java @Modifying @Query("UPDATE User u SET u.status = :status WHERE u.id IN :ids") void bulkUpdateStatus(@Param("ids") List ids, @Param("status") String status); ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы