当我修改用于使用Java进行MySQL检索的批处理更新的代码时,我对此表示怀疑。
我的理解是,访存大小是ResultSet对象中的最大行数,而Batch Limit是可以添加到批处理中以执行批处理的选择/插入/更新查询的数量。如果我在这里错了,谁能纠正我。
谢谢。
最佳答案
你几乎是正确的。但是要添加到它javadoc of Statement#setFetchSize()
向JDBC驱动程序提示应包含的行数
从数据库中获取
而批处理限制与您可以插入或更新与max_allowed_packet相关的内容的行数有关
附带说明:
您也可以阅读JDBC API implementation notes作为一本好书
结果集
默认情况下,完全检索结果集并将其存储在内存中。
在大多数情况下,这是最有效的操作方式,并且由于
MySQL网络协议的设计更易于实现。如果
您正在使用具有大量行的ResultSet或
较大的值,并且无法在JVM中为
需要内存,您可以告诉驱动程序将结果流回
一次一行。