Продвинутый
Что такое проблема 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 запросам).