mysql按工作日查询统计优化_mysql 统计时间范围记录优化

统计三分钟,五分钟,十分钟,半小时 表数据记录数:

SELECT

COUNT(*),

(SELECT COUNT(*) FROM incremental_statistics i WHERE

TIMESTAMPDIFF(MINUTE, DATE_FORMAT(i.CREATE_TIME,'%Y-%m-%d %T'), '2019-05-13 15:02:39') BETWEEN 0 AND 3) as threeMin,

(SELECT COUNT(*) FROM incremental_statistics i WHERE

TIMESTAMPDIFF(MINUTE, DATE_FORMAT(i.CREATE_TIME,'%Y-%m-%d %T'), '2019-05-13 15:02:39') BETWEEN 0 AND 5) as fiveMin,

(SELECT COUNT(*) FROM incremental_statistics i WHERE

TIMESTAMPDIFF(MINUTE, DATE_FORMAT(i.CREATE_TIME,'%Y-%m-%d %T'), '2019-05-13 15:02:39') BETWEEN 0 AND 10) as tenMin,

(SELECT COUNT(*) FROM incremental_statistics i WHERE

TIMESTAMPDIFF(MINUTE, DATE_FORMAT(i.CREATE_TIME,'%Y-%m-%d %T'), '2019-05-13 15:02:39') BETWEEN 0 AND 30) as thirtyMin,

(SELECT COUNT(*) FROM incremental_statistics i WHERE

TIMESTAMPDIFF(MINUTE, DATE_FORMAT(i.CREATE_TIME,'%Y-%m-%d %T'), '2019-05-13 15:02:39') BETWEEN 0 AND 60) as oneHour

FROM

incremental_statistics ilss

结果是:

142401d7012842c8bb7f7a5c079ba421.png

我们来用 EXPLAIN 分析一下:

f7a046ed6bff4e60baebae2443189fa3.png

结果发现,用的都是子查询,大家都应该知道,随着数据量越来越大,子查询会大大降低查询速度,我们来优化一下:

SELECT

COUNT(*),

SUM(TIMESTAMPDIFF(MINUTE, DATE_FORMAT(ilss.CREATE_TIME,'%Y-%m-%d %T'), DATE_FORMAT('2019-05-13 15:02:39','%Y-%m-%d %T'))BETWEEN 0 AND 3) as threeMin,

SUM(TIMESTAMPDIFF(MINUTE, DATE_FORMAT(ilss.CREATE_TIME,'%Y-%m-%d %T'), DATE_FORMAT('2019-05-13 15:02:39','%Y-%m-%d %T'))BETWEEN 0 AND 5) as fiveMin,

SUM(TIMESTAMPDIFF(MINUTE, DATE_FORMAT(ilss.CREATE_TIME,'%Y-%m-%d %T'), DATE_FORMAT('2019-05-13 15:02:39','%Y-%m-%d %T'))BETWEEN 0 AND 10) as tenMin,

SUM(TIMESTAMPDIFF(MINUTE, DATE_FORMAT(ilss.CREATE_TIME,'%Y-%m-%d %T'), DATE_FORMAT('2019-05-13 15:02:39','%Y-%m-%d %T'))BETWEEN 0 AND 30) as thirtyMin,

SUM(TIMESTAMPDIFF(MINUTE, DATE_FORMAT(ilss.CREATE_TIME,'%Y-%m-%d %T'), DATE_FORMAT('2019-05-13 15:02:39','%Y-%m-%d %T'))BETWEEN 0 AND 60) as oneHour

FROM

incremental_statistics ilss

结果:

45d9de5c8b2a4151a34e3ef4c18fda14.png

两者对比:

62268009c477439782bb92fc6e0744ce.png

发现结果是一样的,老铁没毛病,我们再看看 EXPLAIN 分析如下:

3eb1dc7073d54797be27c30095339523.png

发现,子查询没了,这样sql的优化就好了!

本文章为原创,未经允许不得转载

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值