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

Как ускорить выполнение запроса поиска в БД

Оптимизация запросов в БД включает несколько ключевых подходов:

  1. Индексы – создание индексов на часто используемых полях в WHERE, JOIN, ORDER BY:
java
// Пример индекса в JPA
@Entity
@Table(indexes = @Index(columnList = "email"))
public class User { ... }
  1. Оптимизация запроса:
  • Избегайте SELECT * – выбирайте только нужные поля
  • Используйте LIMIT для пагинации
  • Минимизируйте подзапросы
  1. Кэширование (Hibernate L2 cache, Redis)

  2. Пакетная обработка (batch updates)

  3. Анализ плана выполнения (EXPLAIN в SQL) для выявления узких мест

  4. Оптимизация соединений – замена подзапросов на JOIN, где это уместно

  5. Настройка пула соединений (HikariCP и др.)

Для JPA/Hibernate:

  • Используйте @BatchSize
  • Включайте hibernate.jdbc.batch_size
  • Избегайте N+1 проблемы с JOIN FETCH
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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