17
回答
数据库聚合函数avg()和取出来用java算哪个性能高?
华为云4核8G,高性能云服务器,免费试用   

例如这样

第一种

session.createQuery("select avg(stuage) from student").uniqueResult();

第二种

List<student> slist=session.createquery("from student").list();

int sumage=0;

int count=0;

for(student:s:slist){

sumage+=s.getAge();

count++;

}


System.out.println(sumage/count);

举报
CodeGeass
发帖于5年前 17回/1K+阅
共有17个答案 最后回答: 5年前

一个10G的文本文件,用普通文件读取接口读取文件并查找内容

VS

数据库管理的10G数据文件中查找数据

不是一个级别的。仅仅是加载数据你就输了。除非运算量巨大。


理论上来说聚合函数性能高,10万行以上的话,光从数据库读取记录就很耗时间了,而用聚合函数还是毫秒级的
看应用场景,如果你是OLTP类型的系统,使用avg绝对是很伤数据库的,只能取出来通过JAVA来计算

引用来自“猫哥.”的答案

看应用场景,如果你是OLTP类型的系统,使用avg绝对是很伤数据库的,只能取出来通过JAVA来计算
如果说都能伤数据库了,那用java算绝对会把应用直接干死的。

引用来自“huan”的答案

引用来自“猫哥.”的答案

看应用场景,如果你是OLTP类型的系统,使用avg绝对是很伤数据库的,只能取出来通过JAVA来计算
如果说都能伤数据库了,那用java算绝对会把应用直接干死的。

你放心,绝对干不死。

Java计算1到40亿的和,也不过眨眼间,计算个平均值,小菜一碟

引用来自“阿尔法兽”的答案

引用来自“huan”的答案

引用来自“猫哥.”的答案

看应用场景,如果你是OLTP类型的系统,使用avg绝对是很伤数据库的,只能取出来通过JAVA来计算
如果说都能伤数据库了,那用java算绝对会把应用直接干死的。

你放心,绝对干不死。

Java计算1到40亿的和,也不过眨眼间,计算个平均值,小菜一碟

数据库来算1到40亿的和就会受伤?

引用来自“huan”的答案

引用来自“阿尔法兽”的答案

引用来自“huan”的答案

引用来自“猫哥.”的答案

看应用场景,如果你是OLTP类型的系统,使用avg绝对是很伤数据库的,只能取出来通过JAVA来计算
如果说都能伤数据库了,那用java算绝对会把应用直接干死的。

你放心,绝对干不死。

Java计算1到40亿的和,也不过眨眼间,计算个平均值,小菜一碟

数据库来算1到40亿的和就会受伤?
那有何处所言“用java算绝对会把应用直接干死”?
--- 共有 1 条评论 ---
stringjava算了就算了,直接用汇编吧,估计能和数据库拼一拼 2年前 回复

引用来自“IdleMan”的答案

一个10G的文本文件,用普通文件读取接口读取文件并查找内容

VS

数据库管理的10G数据文件中查找数据

不是一个级别的。仅仅是加载数据你就输了。除非运算量巨大。


简单滴说:数据库就是一个优化的文件存储系统。

除非你是牛逼的冒烟那种大牛,否则不要挑战数据库在算法和效率上的权威性。

顶部