假设有一个 ResultSet rs
和 n
对象。
这段代码:
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/