串流大型MySQL 結果集
問題描述
問題描述在大型載入中大型MySQL在表時Spring應用程式中,由於驅動程式嘗試將整個表載入到記憶體中而發生OutOfMemory異常。儘管將取得大小設為 Integer.MIN_VALUE,但關閉 ResultSet 會導致掛起問題。即使對於小表,掛起也會持續存在,並阻止關閉連接,從而導致以下堆疊追蹤:
解決方案僅設定提取大小是不夠的。 MySQL JDBC 驅動程式需要特定的語句建立方法:
注意事項與意義鎖定是在交易或語句完成或活動結果集關閉之前不會釋放。
其他注意事項如果 OutOfMemory 異常仍然存在,請考慮立即實施處理從資料庫擷取的資料以避免過多的記憶體分配。這可能需要大量的程式碼重組和不同的流程控制方法。以上是如何在 Spring 中有效地傳輸大型 MySQL 結果集而不出現 OutOfMemory 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!