#mysql #laravel #eloquent #laravel-models
#mysql #laravel #красноречивый #laravel-модели
Вопрос:
Я хотел бы получить вашу рекомендацию.
// Solution one
$total_user=User::count();
$active_user=User::where('active', 'active')->count();
// Solution two
$user = User::all();
$total_user=$user->count();
$active_user=$user->where('active','active')->count();
Примечание: число пользователей станет больше, чем минимум на 1 миллион.
Спасибо всем
Комментарии:
1. мы здесь для MCQ?
Ответ №1:
я думаю, что решение 1 лучше
потому что в решении 2 вы получаете все данные из базы данных, а затем подсчитываете их, и это занимает гораздо больше времени, чем просто подсчет их в решении 1
итак, мой выбор — решение 1
Ответ №2:
1- Сначала мы извлекаем все записи одним запросом
$users = User::select('id', 'active')->get();
УВЕДОМЛЕНИЕ :
С помощью SELECET мы приводим только выбранные поля, принадлежащие пользователю, если нет необходимости в другой важной информации пользователя для скорости.
2- Мы фильтруем
$active_users = $users->filter(function ($row) {
return $row->aktive == 'active';
});
3- Затем мы пишем (в представлении)
Total :{{ count($users) }}
Active :{{ count($active_users) }}