关于sum()求和

数据差不多有百万级,需要求某个字段的和,是整个表都要统计,如果百万级数据,和值大概在1-2亿,这时候是直接用sum()合适还是foreach循环相加合适,我感觉直接用sum()执行时间好久,刚看了下大概118W数据,和值1.5亿,响应时间大概4.24S,而且CPU一直忽高忽低的,愁死人

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

用foreach = 找死

1年前 评论
a3211 (楼主) 1年前
ysnow (作者) 1年前
ysnow (作者) 1年前
a3211 (楼主) 1年前
讨论数量: 9

如果是实时数据的话,建议还是用sum,foreach就不用考虑了。如果是包含一部分历史数据且这些历史数据不会更改,可以弄一个统计表,例如按照月份把每个月的总数等信息用定时任务处理好后都存起来,这样就算是实时数据,只需要考虑已经计算好的历史数据+未计算好的,这样速度就好很多。

1年前 评论
Ranger9527 1年前

追加,我是新手,小学毕业,自学的php,没有专业基础,太多不懂得了

1年前 评论

用foreach = 找死

1年前 评论
a3211 (楼主) 1年前
ysnow (作者) 1年前
ysnow (作者) 1年前
a3211 (楼主) 1年前

用 DB sum 可能要好点。 在查询的时候,就计算出来。

1年前 评论

如果是实时数据的话,建议还是用sum,foreach就不用考虑了。如果是包含一部分历史数据且这些历史数据不会更改,可以弄一个统计表,例如按照月份把每个月的总数等信息用定时任务处理好后都存起来,这样就算是实时数据,只需要考虑已经计算好的历史数据+未计算好的,这样速度就好很多。

1年前 评论
Ranger9527 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!