JDBC 是否具有最大结果集大小?

2022-09-03 13:30:13

JDBC 是否将专门从 Hive 查询放入 ResultSet 中的最大行数?我不是在谈论读取大小或分页,而是在ResultSet中返回的总行数。

如果我错了,请纠正我,但是读取大小设置了jdbc在数据库中每次传递时要处理的行数,并将适当的响应插入到ResultSet中。当它遍历表中的所有记录后,它会将 ResultSet 返回到 Java 代码。我问返回给Java代码的行数是否有限制。

如果它没有最大行数,则该类是否有任何固有的内容可能导致某些记录被修剪掉?


答案 1

不,它不是以这种方式工作的。JDBC 只是一个围绕本机数据库的包装器。但是 JDBC 或数据库游标的工作方式相同:

  • 将查询(通过 JDBC)发送到数据库
  • 数据库分析查询并初始化游标(JDBC 中的 ResulSet)
  • 从 ResultSet 获取数据时,数据库软件将进入数据库以获取新行并填充 ResultSet

因此,ResultSet 可以包含的行数没有限制,Java 客户端程序可以处理的行数也没有限制。唯一的限制是,如果您尝试加载内存中的所有行以填充列表并耗尽客户端应用程序内存。但是,如果您处理行并且不将它们保存在内存中,则没有限制(就像读取文件时发生的情况一样)。


答案 2

推荐