栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

mysql查询今日,7日,30日大数据量sql优化

mysql查询今日,7日,30日大数据量sql优化

项目中存在数据量较大的流水数据,对流水数据进行按日,7日,30日,本月,本年等维度进行统计时,存在sql慢的问题,针对这一问题,对这类sql进行时间维度的优化,加索引,优化时间查询语句

例:查询今日内数据 (50万数据条测试) 优化前
select a.time from table
where to_days(a.time) >= to_days(now())

优化前sql运行0.734秒

通过explain进行查询rows有50万条

索引优化
  1. 给table表的time字段加上index索引后,进行优化sql
ALTER TABLE  `table` 
ADD INDEX `index` (`time` ASC);
  1. 优化sql,通过explain进行调试语句,优化后rows为1(当日无数据)
select  a.time from table  a
where a.time >=  DATE_FORMAT(now(),'%Y-%m-%d 00:00:00')  
and a.time <= DATE_FORMAT(now(),'%Y-%m-%d 23:59:59')
优化后

通过优化50万条数据测试结果为0.015秒

今天
select a.time from table  a
where a.time >=  DATE_FORMAT(now(),'%Y-%m-%d 00:00:00')  
and a.time <= DATE_FORMAT(now(),'%Y-%m-%d 23:59:59')
昨天(待更新)
 
近7日 
select a.time from table a
where a.time >=      
DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 7 DAY),'%Y-%m-%d 00:00:00')
近30日
select a.time from table a
where a.time >=      
DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 30 DAY),'%Y-%m-%d 00:00:00')
本月
select a.time from table a
where a.time >=      
DATE_FORMAT(now(),'%Y-%m-01 00:00:00')
上月(待更新)
 
本季(待更新) 
 
上季(待更新) 
 
本年 
select a.time from table a
where a.time >=      
DATE_FORMAT(now(),'%Y-01-01 00:00:00')
上年(待更新)
 
这周(待更新) 
 
上周(待更新) 
 
查询距离当前现在6个月的数据 (待更新) 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/680868.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号