java - SQL查询性能: finding max

标签 java sql performance

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

方式一:

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 查询中包含长列表是否是一个好主意。

最佳答案

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

关于java - SQL查询性能: finding max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19119489/

相关文章:

php - 防止 "corruption"

javascript - forEach 函数比等效的 for 循环快得多

java - 后续 REST 调用将被阻止,直到前一个调用完成

Java 对象作为监视器澄清

sql - Powershell 存储过程参数未发送

c++ - C++ 和汇编中的对数

删除锁时 Java 性能下降

java - 多个套接字导致 ConnectException : Connection refused: connect

java - hive 旧货服务器挂起

mysql - 如何用另一个表中的列值替换一个 MySQL 表中的列值