开发者社区> 问答> 正文

mysql百万级数据待优化(group by,sum)

由于数据量极大,现在表的设计已经是一个月一个表。目前有二千多个设备,每小时上传一次数据。一个月就有200024小时30=144万条。 表设计如下: Rain201412 ObserveTime bigint StationID varchar Rain float ObserveTime和StationID做了联合主键和索引

由于是灵活统计任意时段内的3小时,6小时,12小时,24小时的降水。每个正点时次设备因故障经常需要人工订正数据。

现在我统计2014年12月13日11时各设备的过去12小时降水

select sum(Rain) from  Rain201412 where ObserveTime in(201412130000,201412130100,201412130200,201412130300,201412130400,201412130500,201412130600,201412130700,201412130800,201412130900,201412131000,201412131100) group by StationID order by null

这段sql要运行3秒是什么问题?

展开
收起
游客ufivfoddcd53c 2020-01-03 19:00:17 2765 0
1 条回答
写回答
取消 提交回答
  • 那个in可以去掉,可以在后面用and进行拼接 然后group by你看能用什么办法代替掉不 如果用其他写法代替之后还是不行,建议给列添加索引 另外,函数尽量少用,我上次用substring在sql里面写的时候只要0.2秒,但是部署到虚拟机上要跑1分钟

    2020-01-03 19:00:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像