java - while(rs.next()) 是否比一系列 rs.absolute() 更快

标签 java jdbc benchmarking

假设有一个 ResultSet rsn 对象。

这段代码:

while(rs.next()) {
   // do something on rs
}

在算法上等于此代码(即两者给出相同的结果):

for(i=1; i<=n; i++) {
   rs.absolute(i)
   // do something on rs
}

但这在吞吐量方面是等价的吗?第一个更快吗?或者,对于给定的 i,rs.next() 只是 rs.absolute(i+1) 的包装器?

最好的问候 三菱商事

最佳答案

rs.next 需要一种比 rs.absolute 更简单的数据库游标(FORWARD_ONLY),所以在大多数情况下你会降低性能/rs.absolute 的资源效率。在某些情况下,无论如何都没有对 FORWARD_ONLY 游标进行优化,您可能会获得相同的性能。

一些驱动程序可能允许 absolute 调用,甚至使用 FORWARD_ONLY,验证请求的记录是下一条,但其他驱动程序可能会抛出异常而不管。

关于java - while(rs.next()) 是否比一系列 rs.absolute() 更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13954465/

相关文章:

java - AST 解析器获取 Java 类的名称

java - AdMob 中介,仅适用于 AdMob

java - 无法更新主键所在表

java - 尽管设置与 DBCP 和 JDBC 完全相同,但 HikariCP 仍会拒绝用户访问

java - session 终止后无法将 JDBC 与 Oracle 重新连接

Apache Bench - 如何强制 PUT、DELETE 和 POST 方法

java - 如何在复制到新数组列表和操作后维护旧数组列表的值

java - EMR 版本 4.2.0 上的 Scalding 作业因 VerifyError 而失败

haskell - 对不同大小的输入运行 Haskell 基准测试

scripting - 任何语言 : recycling Variables