TGViewer
| کانال توسعه‌دهندگان لاراول | | کانال توسعه‌دهندگان لاراول | @developixlaravel · 1.54K subscribers
Post #180 853
⚡️ Eager Loading برای جلوگیری از N+1 در لاراول

خیلی وقت‌ها کندی عجیب در صفحه‌هایی دیده می‌شود که لیست‌ها را با روابط Eloquent نمایش می‌دهند؛ ریشه‌اش معمولاً مشکل معروف N+1 Query است. خوشبختانه با یک تغییر کوچک در کوئری می‌شود کلی بهبود گرفت. 🚀

فرض کن هر Post یک User دارد و موقع لیست پست‌ها، نام نویسنده را هم نمایش می‌دهی. اگر ساده بنویسی:

$posts = Post::all();

foreach ($posts as $post) {
echo $post->user->name;
}


اینجا یک کوئری برای گرفتن همه پست‌ها اجرا می‌شود و بعد برای هر پست یک کوئری جدا برای گرفتن user؛ یعنی N+1 کوئری 😬

به‌جاش از eager loading استفاده کن:

$posts = Post::with('user')->get();

foreach ($posts as $post) {
echo $post->user->name;
}


حالا فقط دو کوئری اجرا می‌شود: یکی برای پست‌ها، یکی برای همه کاربران مرتبط. هم تمیزتر، هم سریع‌تر، مخصوصاً روی دیتابیس‌های سنگین. 🔥

مرجع: Laravel Docs - Eager Loading

این الگو را در همه لیست‌ها و APIهای پرترافیک پروژه استفاده کن و تاثیرش را در لاگ و پروفایلینگ ببین. 😉

🔖 #Laravel #PHP #لاراول #Laravel #Eloquent #Performance #Eager_Loading #N+1

👤 Developix

💎 Channel: @DevelopixLaravel
  • 👍 4
  • ❤ 2
  • 👎 1
More from @developixlaravel
  1. Oct 1, 2026روابط پایگاه داده چند ریختی یا Eloquent Polymorphic در لاراول - قسمت اول در لاراول، روابط…
  2. Sep 30, 2026مدیریت همزمانی و قفل‌گذاری روی پردازش‌ها در لاراول (Laravel Atomic Locks) در بخش چهارم از…
  3. Sep 26, 2026🔥 پکیج: ورود با حساب‌های دیگر؛ Socialite برای اضافه‌کردن ورود با حساب‌های دیگر به پروژه ل…
  4. Sep 25, 2026🔒 فقط داده‌های تأییدشده را ذخیره کن وقتی یک فرم ویرایش پروفایل داری، ممکن است کلاینت علاو…
  5. Sep 20, 2026حفاظت از پردازش ها با Laravel Rate Limiter بخش سوم - پیکربندی در قسمت سوم از مجموعه آموزش…
  6. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →