【发布时间】:2016-05-03 16:28:26
【问题描述】:
这可能是一个愚蠢的问题,但我正在开发一个应用程序,我们需要计算一些基本的人口统计数据。我想访问数据库一次,然后尝试查询该 Eloquent 模型数组。现在我正在使用查询获取一个数组,然后循环遍历它以计算一些统计信息。
即
$people = Person::all();
$total = count($people);
$count = 0;
foreach($people as $person)
if($person->age > 60) {
count++;
}
}
$percent = $count/$total;
这可行,但我们必须为数百个数据点执行此操作。
我可以这样做吗?
即
$people = Person::all();
$total = count($people);
$count = $people->where('age', '>=', '60')->count();
$percent = $count/$total;
我的想法是后者会更有效(如果可能的话),因为它只访问数据库并在服务器端进行聚合操作?还是进行多个查询并让数据库完成所有聚合操作会更好?
谢谢,
马特
【问题讨论】:
标签: php mysql database laravel laravel-5.2