应该把基础运算交给数据库还是后端程序?

最基础简单的字段间相加减乘除,再用新字段分组求和求平均。

比如SELECT AVG(365/(fieldA/fieldB)) FROM table WHERE fieldA='x' GROUP BY year;

假设where出来1000千数据,有人说会大量增加数据库压力,貌似将fieldA和fieldB全部传到后端,再计算再分组再求平均要消耗不少网络、内存和计算性能。

有没大佬解惑下。


数据库
后端
2023-08-30 14:02:43
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
卐卐狼卍卐

个人建议放在你的程序中进行计算。

理由是:

1.增加了数据库的负担,会让数据库返回的时间边长,导致你持有连接的时间边长,如果你处于事务中,还会导致你持有锁的时间变长等等。

2.程序和数据库基本都是内网传输,带宽都是相当大的,基本上不用考虑网络方面的问题。

3.至于你说的程序消耗,如果是业务处理,这本来就是它的本职工作,你如果觉得获取的数据太多导致数据库压力大,你可以考虑修改下数据结构,冗余字段或者存储的时候计算好结果,减少数据的获取量。

4.你的程序集群应该比较容易扩容的,你说的内存和计算性能,相对于数据库更容易获得

分享
微博
QQ
微信
回复
2023-08-30 16:01:31
提问
该提问已有0人参与 ,帮助了0人