数据库聚合函数avg()和取出来用java算哪个性能高?

CodeGeass 发布于 2013/05/28 13:39
阅读 1K+
收藏 1

例如这样

第一种

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);

加载中
0
IdleMan
IdleMan

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

VS

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

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


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

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

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

引用来自“huan”的答案

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

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

你放心,绝对干不死。

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

0
huan
huan

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

引用来自“huan”的答案

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

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

你放心,绝对干不死。

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

数据库来算1到40亿的和就会受伤?
0
sjunjun
sjunjun
数据库比程序强
0
南湖船老大
南湖船老大

引用来自“huan”的答案

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

引用来自“huan”的答案

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

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

你放心,绝对干不死。

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

数据库来算1到40亿的和就会受伤?
那有何处所言“用java算绝对会把应用直接干死”?
s
string
java算了就算了,直接用汇编吧,估计能和数据库拼一拼
0
魔力猫
魔力猫
推荐用Java计算的只要想一想这么多数据从数据库到应用的IO就知道了,绝对不可以这样做。
0
南湖船老大
南湖船老大

引用来自“IdleMan”的答案

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

VS

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

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


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

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

返回顶部
顶部