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

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

Для оптимизации медленного SQL-запроса: 1. **Анализ плана выполнения** (EXPLAIN) - выявляем узкие места (full scan, отсутствие индексов) 2. **Добавление индексов** на часто используемые поля в WHERE/JOIN/ORDER BY: ```sql CREATE INDEX idx_user_email ON users(email); ``` 3. **Оптимизация самого запроса**: - Избегать SELECT * (выбирать только нужные поля) - Заменить подзапросы на JOIN - Использовать LIMIT для пагинации 4. **Кэширование** результатов (Redis, Ehcache) 5. **Batch-обработка** для массовых операций 6. **Настройка БД** - увеличение буферов, параметров соединений Пример оптимизации через индексы: ```java // Было @Query("SELECT u FROM User u WHERE u.lastName LIKE %:name%") List findUsersBySubstring(@Param("name") String name); // Стало (с индексом на lastName) @Query("SELECT u FROM User u WHERE u.lastName LIKE :name%") List findUsersStartingWith(@Param("name") String name); ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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