1. 语句如下:
select
tb1.*,
tb2.name as ad_name,
tb3.name as media_name
from (
select
`day`,
hourly,
ad_id,
media_id,
count(*) AS winnotice,
IFNULL(SUM(cost), 0) AS cost,
IFNULL(budget, 0) AS budget
from
pmp_report_hourly_ad
WHERE 1=1
AND `day` = '2017-03-17'
AND status=1
AND type = 0
GROUP BY ad_id,media_id,hourly
ORDER BY `day` DESC, hourly ASC
) tb1
LEFT JOIN pmp_config_ads tb2 ON tb1.ad_id = tb2.id
LEFT JOIN pmp_config_media tb3 ON tb3.id = tb1.media_id
2.索引如下:
好长,感觉在做阅读理解题,再贴个执行计划会更好。
看到
pmp_report_hourly_ad
这个表建了好多索引,而且都只覆盖一个字段,不如建一个索引,覆盖type、status、day、ad_id、media_id、hourly 。