나는 레벨 열을 가지고 있으며 각 열의 수를 계산해야합니다.Laravel 5.3 모델 - 한 열 계산 - 어느 방법이 더 빠릅니까
어떤 옵션이 더 빠르고 더 효율적이며 그 이유는 무엇입니까? 아니면 내가 고려하지 않은 더 빠른 방법일까요?
$athletes = Athlete::orderBy('level', 'desc')->get();
foreach ($athletes as $a) {
switch ($a->level) {
case "advanced":
$dataAdvanced += 1;
break;
case "intermediate":
$dataIntermediate += 1;
break;
case "medium":
$dataMedium += 1;
break;
case "beginner":
$dataBeginner += 1;
break;
case "other":
$dataOther += 1;
break;
}
또는
$dataAdvanced = Athlete::where('level', 'advanced')->count();
$dataIntermediate = Athlete::where('level', 'intermediate')->count();
$dataMedium = Athlete::where('level', 'medium')->count();
$dataBeginner = Athlete::where('level', 'beginner')->count();
$dataOther = Athlete::where('level', 'other')->count();
레벨에 의한 카운트 (*) Gorup – JYoThI
제네릭 메서드가 사용자 지정 메서드보다 빠르고 최적화되므로 –
Athlete :: select ('id', \ DB :: raw ("count (level) as total_count ")) -> groupBy ('level') -> get(); – JYoThI