应该把基础运算交给数据库还是后端程序?
最基础简单的字段间相加减乘除,再用新字段分组求和求平均。
比如SELECT AVG(365/(fieldA/fieldB)) FROM table WHERE fieldA='x' GROUP BY year;
假设where出来1000千数据,有人说会大量增加数据库压力,貌似将fieldA和fieldB全部传到后端,再计算再分组再求平均要消耗不少网络、内存和计算性能。
有没大佬解惑下。
数据库
后端
赞
收藏 0
回答 1
待解决
个人建议放在你的程序中进行计算。
理由是:
1.增加了数据库的负担,会让数据库返回的时间边长,导致你持有连接的时间边长,如果你处于事务中,还会导致你持有锁的时间变长等等。
2.程序和数据库基本都是内网传输,带宽都是相当大的,基本上不用考虑网络方面的问题。
3.至于你说的程序消耗,如果是业务处理,这本来就是它的本职工作,你如果觉得获取的数据太多导致数据库压力大,你可以考虑修改下数据结构,冗余字段或者存储的时候计算好结果,减少数据的获取量。
4.你的程序集群应该比较容易扩容的,你说的内存和计算性能,相对于数据库更容易获得