使用 MySQL 流式处理大型结果集
在 Spring 应用程序中处理大量 MySQL 表时,当驱动程序试图执行以下操作时,可能会出现 OutOfMemoryException:将整个表加载到内存中。设置statement.setFetchSize(Integer.MIN_VALUE);可能还不够,因为这仅向 JDBC 驱动程序提供提示。
要在 MySQL JDBC 驱动程序中启用结果集流,需要更全面的方法:
创建语句实例:
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
设置 Fetch Size:
stmt.setFetchSize(Integer.MIN_VALUE);
注意事项:
此方法有一定的注意事项:
其他见解:
有关处理大型结果集的进一步策略,请考虑以下相关问题及其答案: [链接到类似问题]。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3