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

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

比如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
相关问题
后端查询数据库的性能问题
2639浏览 • 1回复 待解决
如何构建数据库ORM增删改查基础能力
653浏览 • 1回复 待解决
OrmDatabase 数据库问题
2363浏览 • 1回复 待解决
多个数据库,同步数据
1085浏览 • 1回复 待解决
数据中台数据库选择问题
1083浏览 • 1回复 待解决
数据库操作同步的方法
749浏览 • 1回复 待解决
关系型数据库使用分享
494浏览 • 1回复 待解决
PolarDB 数据库结构是什么?
1838浏览 • 1回复 待解决
如何连接PolarDB数据库集群 ?
2883浏览 • 1回复 待解决
用户查询消息数据库设计
1745浏览 • 1回复 待解决
RDS如何查看数据库名称?
1379浏览 • 1回复 待解决
如何读取本地/预制数据库
576浏览 • 1回复 待解决
键值型数据库跨设备数据同步demo
435浏览 • 1回复 待解决
OceanBase数据库的特点有哪些?
3338浏览 • 1回复 待解决