我目前正在为我们的工作网站构建一个分析系统,我们有时间戳的应用程序数据库。Laravel Report Analytics - 缓慢的foreach查询循环
我试图得到每天与特定月份的应用程序的数量,我使用ajax和图表js这样做,代码工作,但是,PHP是非常缓慢,我只是想知道是否有反正改善这个。下面是我使用的代码:
$days = cal_days_in_month(CAL_GREGORIAN,$qmonth,$qyear);
foreach (range(1, $days) as $key => $number) {
$count = App\report::whereYear('date_created', $qyear)->whereMonth('date_created', $qmonth)->whereDay('date_created', $number)->count();
$cart[] = array('day' => $number, 'count' => $count);
}
$result = json_encode($cart);
print_r($count);
我传递两个网址参数的PHP代码$ qmonth和$ qyear,我运行取决于有多少天是在本月28日和31倍之间的查询,因为我需要每天统计应用程序的数量。有没有什么我可以做到这一点,而不必在循环中查询30次,因为我认为这就是为什么查询如此缓慢?
最好的问候, 加雷思
30个查询单个请求的工作绝对是一个不少。你可以做的是** 1)**编写一个复杂的SQL查询,它返回你已经计算和分组的MySQL或**的所需结果** **从'应用程序\报告'的所有结果与一个查询和用PHP来转换它们以适应图表的抽象。 – TheFallen
我将如何去做第二个选择? –
为什么你不通过MYSQL获得结果,然后迭代db上的结果?当你在较低层次上工作时,速度会更快。 –