我目前正在爲我們的工作網站構建一個分析系統,我們有時間戳的應用程序數據庫。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上的結果?當你在較低層次上工作時,速度會更快。 –