请问,计算平均值,在sql语句直接计算,和java后台计算,各自的利弊是什么

那个性能更好,那个更方便维护,诸如此类答案好难搜,,希望能得到解答并适当讲解一下原因,感谢!... 那个性能更好,那个更方便维护,诸如此类答案好难搜,,
希望能得到解答并适当讲解一下原因,感谢!
展开
 我来答
longrenyingdc8ecb1
2015-09-29 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2369万
展开全部
看你的数据是从什么地方来的,如果数据是前台输入,那么一般来说java计算较好。比如输入五个值,计算平均值,然后分别存入数据库,这样数据库不需要二次计算。
不过也不是完全这样,如果平均值并不是需要那么及时,那么也可以用oracle计划任务计算。
因为输入的数据,如果在数据库计算,那么是需要先输入,输入完成后再计算,这样等于增加了一道工序,所以如果及时性要求高,那么对于输入数据来说在java端运算,比较好。对于性能来说更加有利。
如果是从数据库读出数据,那么就是数据库端好一些,同样的道理,读出数据你需要先读取,然后计算,计算完成后,再次读取,这个就是比直接计算,然后读取多了一道工序。
不过,根据实际情况也会有些调整,比如这个平均值没什么用,数据库不需要它,而且计算量很大,比较耗费数据库资源,那么可以把这个平均值放在java中计算,这样能节省数据库资源,毕竟数据库不可能只计算这么个平均值,不干其他事情。
所以基本没办法说一定的话,我个人的原则是“这个数数据库需要,那么就在数据库计算,数据库不需要,那么就在java中计算”
至于说的方便维护,个人感觉数据库可能好一些,java如果要改程序,可能涉及面较广;数据库的话,专注于数据,甚至可能都不需要修改,因为数据库avg函数就是计算平均数的,如果条件改了可能只需要改一个语句中的一个“分组字段”或者加一个 and 条件就好了。
追问
谢谢耐心详细的讲解!长见识了!
百度网友090def6
推荐于2017-12-16 · TA获得超过2211个赞
知道小有建树答主
回答量:558
采纳率:100%
帮助的人:712万
展开全部
  1. 存计算而言,Java和数据库不相上下

    如,计算1-10的平均数,两者差不多(目前没有这方面比较的专业资料,个人认为Java略快)

  2. 对数据库中多行记录某字段做平均值,数据库比Java快

    因此数据库直接在内部处理了数,Java有个转换过程

    如,数据库有n条记录,对字段A做计算,Java先要读出库中的记录(然后再计算),这需要IO流的操作,相当耗性能,比不过在库中直接计算,只返回一个结果即可

  3. 就维护性而言,Java跟方便(有条件的)

    A.  就一般Java项目,在Java中做计算,更加直观,便于开发人员维护,毕竟不是所有开发人员都精通SQL语法(平局值这算简单,呵呵)

    B. 对于业务不太复杂的计算,如单个字段的平均值,数据库和Java差别不大

  4. 其他

    如果项目中有牛逼的DBA,可以放在数据库中计算,否则放在Java中


注:

  1. 如果是学习数据库知识,先放在数据库中

  2. 如果是学习Java 或者 做Java开发,放在Java中

追问
感谢,特意下载的百度知道app采纳的,经理问我为什么放在sql中不放在java里,对此就产生了疑问,总之,谢谢!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式