Что такое N+1 запросов? Как избежать?

Ответ

Получение списка сущностей, затем для каждой - отдельный запрос за связями (например, заказы и для каждого заказа - запрос строк). Итого 1 + N запросов. Решение: eager loading - подгружать связи одним запросом (JOIN или отдельный IN-запрос). В ORM: Eloquent with(), Doctrine join/select. Или один запрос с JOIN и ручной сборкой графа объектов.

User::with('orders')->get(); // два запроса вместо 1+N
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.