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

Как оптимизировал работу с БД

  1. Использование индексов - создание индексов для часто запрашиваемых полей ускоряет поиск.

    java
    @Entity
    @Table(indexes = @Index(columnList = "email"))
    public class User { ... }
  2. Пакетная обработка - вместо множества отдельных запросов используем batch операции.

    java
    entityManager.createQuery("UPDATE Product p SET p.price = p.price * 1.1")
                 .executeUpdate();
  1. Кеширование - Hibernate L2 Cache или Redis для часто читаемых данных.

  2. Оптимизация запросов - избегаем N+1 проблему через JOIN FETCH:

    java
    @Query("SELECT o FROM Order o JOIN FETCH o.items WHERE o.id = :id")
    Order findOrderWithItems(@Param("id") Long id);
  3. Ленивая загрузка - настраиваем FetchType.LAZY для связей.

  4. Connection Pool - используем HikariCP для управления соединениями.

  5. Профилирование - анализируем медленные запросы через spring.jpa.show-sql=true.

  6. Репликация - читаем из реплик, пишем в мастер.

  7. Денормализация - иногда дублируем данные для скорости чтения.

  8. Подготовленные выражения - PreparedStatement для повторяющихся запросов.

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

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

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

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