sql查询性能:查找最大值

时间:2013-10-01 14:55:44

标签: java sql performance

我有一个包含组和权限列的表。我想从组列表中找到最大权限。我正在使用java和oracle数据库,我想到了两种方法:

方式1:

in java loop through the group list
    result = select permission from table where group = currentgroup
    if result > max, max = result 

方式2:

max = select max(permission) from table where group in (group list)

我认为2会更快,但是组列表可能会很长,我不知道在单个sql查询中使用长列表是否是个好主意。

1 个答案:

答案 0 :(得分:1)

根据您提供的信息,第二种方法是迄今为止最好的方法。数据库直接针对这些类型的任务进行了优化,因此在合理的范围内,最好使用数据库缩小数据范围。第一种方法意味着数据库无论如何都需要返回所有值,从而增加了java应用程序中的处理时间,带宽和耗尽内存。