SA Шпаргалка

Все ответы в 2 клика

Продвинутый

Что такое проблема N+1 запроса на уровне БД и как ее решить?

Проблема N+1 возникает при использовании ORM (Hibernate, Entity Framework), когда система делает 1 запрос для получения списка сущностей, а затем N дополнительных запросов для получения связанных данных.

Пример:
1. SELECT * FROM authors; (вернул 100 авторов).
2. ORM в цикле делает 100 запросов: SELECT * FROM books WHERE author_id = ?.
Итог: 101 запрос к БД вместо одного.

✅ Как решить:

  • Использовать JOIN (вытащить всё одним запросом).

  • Использовать Eager Loading (Жадную загрузку) в ORM: SELECT * FROM books WHERE author_id IN (1, 2... 100) (сводит к 2 запросам).

Сложная тема? Разберём на мок-интервьюЗаписаться на менторство →

Ещё вопросы раздела «SQL и БД»

Все вопросы раздела «SQL и БД»