求助,多层嵌套foreach执行时间太长了,如何使用sql进行查询优化
1. 期望
需要获取每个分区每分钟的温湿度数据,可能由于网络问题,某分钟时1分区有数据,2没有
用了一个比较笨的方法,查询所有分区的温湿度时,时间间隔是最多的,以所有分区的时间为准,然后进行循环,没有数据的就是null
2. 您实际得到的结果?
这样的耗时是处理14401440+14401440+14401440+14401440 数据量的时间?
客户的服务器是4核8G的这个耗时太久了,直接15秒,公司服务器处理完是4秒多
这是前端显示的图表
已经解决
感谢大佬@renxiaotu的解答
下图为处理过程
这里是合并数组打印的 $array 的结果,$selectRa需要每个单独写,即$heartsN对应tN和hN
$selectRaw1 = '
DATE_FORMAT(created_at,"%Y-%m-%d %H:%i") as time,
ROUND(AVG(temperature*1.0),1) as t1,
ROUND(AVG(humidity*1.0),1) as h1
';
经过优化处理的的时间为1秒多
推荐文章: