🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ پویا پارسایی
چرا از متد all نباید استفاده کنیم؟
جامعه لاراول ایجاد شده در ۲۰ اردیبهشت ۱۴۰۱

سلام و عرض ادب

در تکمیل فرمایشات استاد، این نکته رو عرض کنم که بهتره تا جایی که امکان داره از متد ()all استفاده نکنیم. چون کوئریمون سنگین میشه و زمان پاسخ دهی از سمت دیتابیس افزایش پیدا میکنه.

حالا تو این مورد که تعداد رکوردامون کمه مشکلی نداره ولی وقتی که تعداد رکوردا زیاد میشه (مثلا چند میلیون)، کوئریمون بهینه نیست. بهتره که اول ستون هایی که نیاز داریم رو select کنیم و بعد paginate کنیم.

یه مورد دیگه هم که هست بهتره رکوردایی که میخوایم رو تو سطح دیتابیس بگیریم و بعد کالکشنش رو دریافت کنیم. چون سرعتش خیلی بیشتره.

با این روش که اول میایم همه رکوردا رو دریافت میکنیم و میریزیمش تو یه کالکشن و بعد از کالکشن random میگیریم سرعت برنامه مون رو کاهش میدیم.

به طور مثال واسه این موردی که استاد فرمودن میتونیم به این شکل عمل کنیم:

$mostViewedVideos = Video::inRandomOrder()->limit(6)->get();
$mostPopularVideos = Video::inRandomOrder()->limit(6)->get();

سلام دوست عزیز

ممنون بابت اینکه دانشتون رو در اختیار دوستانتون قرار میدین ?

محمد گازری ۲۰ اردیبهشت ۱۴۰۱، ۱۵:۰۷