مشکل N+1 زمانی رخ میدهد که برنامه ابتدا یک Query برای دریافت N رکورد اجرا کند و سپس برای هر رکورد یک کوئری جداگانه جهت دریافت رابطه مرتبط بفرستد. در نتیجه تعداد کوئریها از یک به N+1 افزایش مییابد.
Eager Loading و طراحی کوئری مناسب معمولاً این مشکل را کاهش میدهند. باید کوئریهای واقعی و تعداد رفتوآمد به دیتابیس بررسی شوند، هر تعداد کوئری زیاد الزاماً N+1 نیست.
در Eloquent اگر هر Product برای Category خودش Query جدا بزند، تعداد Queryها با تعداد محصولات افزایش مییابد. Eager Loading معمولاً کمک میکند.
نمونه کوتاه
$posts = Post::with("author")->get();
برای تکمیل بحث، ارتباط این مفهوم را با اکتیو رکورد و الوکوئنت بررسی کنید.