为了账号安全,请及时绑定邮箱和手机立即绑定

mysql关于group by语句的优化问题,求思路

mysql关于group by语句的优化问题,求思路

PHP
冉冉说 2019-03-18 15:33:29
想要优化一句关于group by语句,不知道要从何下手,求思路 SELECT adv_id, network_id, SUM(re_click) AS clk, SUM(deny_click) AS dny_clk, SUM(re_conver) AS re_ins, SUM(mat_conver) AS mat_ins, SUM(def_conver) AS def, SUM(cost) AS cost, SUM(earn) AS earn FROM ams_data_hourly_2018_03 WHERE start_time BETWEEN 1519862400 AND 1519948799 GROUP BY adv_id, network_id explain: 索引: 求大神指点
查看完整描述

4 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

1、时间检索结果集小的话就一个start_time单列索引就够了,force一下索引,因为group by会引导mysql走group by字段的索引或者直接全扫。
2、看表名,你这应该是一个分表,如果时间范围直接覆盖了大部分表数据的话什么索引都不用了,全表扫吧,什么三个字段两个字段加索引并没有什么用,时间范围加group by字段的复合索引也只用到了时间字段,只有group by字段的索引就是扫了全表,除非用索引覆盖

查看完整回答
反对 回复 2019-03-18
?
暮色呼如

TA贡献1853条经验 获得超9个赞

adv_id and network_id 联合索引

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 857 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信