使用 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);
设置获取大小:
stmt.setFetchSize(Integer.MIN_VALUE);
注意事项:
这个方法有某些警告:
其他见解:
有关处理大型结果集的进一步策略,请考虑以下相关问题及其答案: [类似问题的链接]。
以上是如何在 Spring 中流式传输大型 MySQL 结果集以避免 OutOfMemoryError?的详细内容。更多信息请关注PHP中文网其他相关文章!