سلام و عرض ادب
در تکمیل فرمایشات استاد، این نکته رو عرض کنم که بهتره تا جایی که امکان داره از متد ()all استفاده نکنیم. چون کوئریمون سنگین میشه و زمان پاسخ دهی از سمت دیتابیس افزایش پیدا میکنه.
حالا تو این مورد که تعداد رکوردامون کمه مشکلی نداره ولی وقتی که تعداد رکوردا زیاد میشه (مثلا چند میلیون)، کوئریمون بهینه نیست. بهتره که اول ستون هایی که نیاز داریم رو select کنیم و بعد paginate کنیم.
یه مورد دیگه هم که هست بهتره رکوردایی که میخوایم رو تو سطح دیتابیس بگیریم و بعد کالکشنش رو دریافت کنیم. چون سرعتش خیلی بیشتره.
با این روش که اول میایم همه رکوردا رو دریافت میکنیم و میریزیمش تو یه کالکشن و بعد از کالکشن random میگیریم سرعت برنامه مون رو کاهش میدیم.
به طور مثال واسه این موردی که استاد فرمودن میتونیم به این شکل عمل کنیم:
$mostViewedVideos = Video::inRandomOrder()->limit(6)->get();
$mostPopularVideos = Video::inRandomOrder()->limit(6)->get();