使用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中文網其他相關文章!