由于数据量极大,现在表的设计已经是一个月一个表。目前有二千多个设备,每小时上传一次数据。一个月就有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秒是什么问题?
那个in可以去掉,可以在后面用and进行拼接 然后group by你看能用什么办法代替掉不 如果用其他写法代替之后还是不行,建议给列添加索引 另外,函数尽量少用,我上次用substring在sql里面写的时候只要0.2秒,但是部署到虚拟机上要跑1分钟
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。