从 JDBC 结果中获取结果数量的公认方法似乎是,做resultSet.last()
,然后resultSet.getRow()
,根据这个答案。但是,在那个答案中,作者还说:
这可能不是一个好主意,因为它可能意味着通过网络读取整个表并丢弃数据。改为执行 SELECT COUNT(*) FROM ... 查询。
我正在寻找一个明确的答案。性能方面,做一个单独的COUNT(*)
查询来获得结果的数量会更好,还是做resultSet.last()
and resultSet.getRow()
,然后resultSet.first()
再做一次更好?
如果 ResultSet 已经获取了结果并将它们保存在内存中,那么这样做无疑会更好last()
,getRow()
因为(我假设)它只会遍历内存中的结果。但是上面的 OP 的回答似乎暗示它会根据请求从数据库中延迟加载结果。