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

Оптимизировал ли запросы в БД

Да, оптимизировал. Основные подходы:

  1. Индексы: Создавал индексы на часто используемых полях в WHERE, JOIN и ORDER BY. Например:
java
@Table(indexes = @Index(columnList = "userId"))
@Entity
public class User { ... }
  1. Пакетные операции: Использовал batch-вставки через JPA:
java
em.persist(entity);
if (i % 50 == 0) {
    em.flush();
    em.clear();
}
  1. Выборка только нужных данных: Вместо SELECT * указывал конкретные поля или использовал проекции.

  2. JOIN FETCH для N+1 проблемы:

java
@Query("SELECT u FROM User u JOIN FETCH u.orders WHERE u.id = :id")
User findByIdWithOrders(@Param("id") Long id);
  1. Кэширование через Hibernate второго уровня или Spring Cache.

Для сложных запросов анализировал EXPLAIN PLAN и добавлял индексы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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