我目前正在編寫一個查詢,它將在MySQL數據庫中的MYISAM表上運行多次。MYSQL Group按日期性能查詢
該查詢需要很多(可能是任何高達100,000+)的行並獲得每月總計。我正在使用的SQL是
SELECT DATE_FORMAT(ct_cdatetime, "%m-%Y") AS Month, SUM(ct_total), SUM(ct_charge)
FROM client_transaction
WHERE (...omitted for this example...)
GROUP BY DATE_FORMAT(ct_cdatetime, "%m-%Y") ORDER BY ct_cdatetime ASC
我知道迫使MySQL將日期轉換爲字符串的性能問題。會是更快的和/或更好的做法是
- 1)保持原樣
- 2)在一個 陣列選擇所有在PHP的行和它們組。
- 3)在數據庫中有一個月份年份的int字段,並在添加該行時更新此 (例如2014年7月的714)?
將您的month_year信息存儲在一個單獨的列中併爲其設置索引(如果這是一個經常使用或時間關鍵的查詢)。 – hellcode