语句是这样的:
SELECT
*
FROM
(
SELECT
DAY AS times,
ifnull(SUM(bid_request), 0) AS bid_request,
count(*) AS winnotice,
ifnull(SUM(budget), 0) AS budget,
ifnull(SUM(cost), 0) AS cost
FROM
pmp_report_history_creative
WHERE
1 = 1
AND STATUS = 1
AND type = 0
GROUP BY
DAY
) tb1
WHERE
tb1.times BETWEEN '2016-12-13'
AND '2016-12-19';
这样查询需要15秒左右,而且还加了索引,索引如下:
请问如何优化这条sql,谢谢:)
你是先把所有数据group by DAY了,然后取出指定日期的计算量当然大了
应该是先取指定日期的再group by,还有不需要嵌套,你外层就限定日期的,啥都没做,直接去掉