infobright优化-group by 字段在过程再次处理会很耗时

来源:互联网 发布:全球域名注册量排名 编辑:程序博客网 时间:2024/05/22 04:54

   原SQL,因为要转化省份是NULL的情况,在group by  的字段中需要做IFNULL(province_id, 999)

 SELECT 20140311,
         app_id,
         IFNULL(province_id, 999),
         2160101,
         COUNT(DISTINCT imei)
    FROM XXXX a
   WHERE a.op_day_id <= 20140311
     AND a.op_day_id >= DATE_FORMAT(DATE_ADD(20140311, INTERVAL - 29 DAY), '%Y%m%d')
   GROUP BY  app_id, IFNULL(province_id, 999);

执行时间:3分44秒



优化后的SQL,判断NULL,在load入infobright前处理掉

SELECT 20140311,

              app_id,

         province_id,
         2160101,
         COUNT(DISTINCT imei)
    FROM XXXXX a
   WHERE a.op_day_id <= 20140311
     AND a.op_day_id >= DATE_FORMAT(DATE_ADD(20140311, INTERVAL - 29 DAY), '%Y%m%d')

   GROUP BY  app_id,province_id;


执行时间:44s


结论:infobright的优势在处理计算汇总,如果过程含有函数处理,相对会慢些

0 0
原创粉丝点击