خوب دوستان توی #لاراول، برای گرفتن(بارگذاری) داده ها از #دیتابیس دو روش وجود داره که هر کدوم مزیا و معایب خودش رو داره.
من بصورت خلاصه شما رو با اونها آشنا میکنم و در پست های بعد هر کدوم رو بیشتر توضیح میدم.
❌ انواع بارگذاری داده از دیتابیس در لاراول:
😐 بارگذاری تنبل (Lazy Loading)
😐 بارگذاری پیشدستانه (Eager Loading)
💎 بارگذاری تنبل (Lazy Loading): تو این روش، دادههای مرتبط تنها زمانی بارگذاری میشوند که به آنها نیاز داشته باشید.
برای نمونه فرض کنید مدل User به مدل Profile متصل هست، وقتی user->profile رو صدا بزنید، لاراول در همان لحظه یک کوئری جدید برای بارگذاری پروفایل کاربر اجرا میکنه. این روش در مواردی مناسب هست که دادههای مرتبط در همه جا نیاز نیست، این ممکنه منجر به اجرای کوئریهای اضافی شود و به مشکل
N+1 منجر گردد!
💎 بارگذاری پیشدستانه (Eager Loading):
توی این روش لاراول از همون ابتدا دادههای مرتبط رو بارگذاری میکنه و این کارایی رو بهتر خواهد کرد
مثلاً با استفاده از متد with:
$users = User::with('profile')->get();
این روش از یک کوئری برای بارگذاری همه کاربران و پروفایلهایشان استفاده میکنه و به این ترتیب از ایجاد کوئریهای اضافی جلوگیری میکند.
🖥 بطور
خلاصه میشه گفت:
بارگذاری تنبل برای زمانی مناسب هست که دادهها همیشه مورد نیاز نیستند، و بارگذاری پیشدستانه برای بهبود کارایی و جلوگیری از اجرای کوئریهای اضافی مناسب هست.
#laravel
👾 @pishroapp