久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

sql查詢數據過多內存溢出的解決方法

172次閱讀
沒有評論

共計 986 個字符,預計需要花費 3 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章主要介紹 sql 查詢數據過多內存溢出的解決方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

正常來說,一般是不會出現這種情況的,但也不能保證,偶爾有這種情況發生,解決方案如下:

使用分頁查詢語句。

因為分頁查詢每次只會查詢少量數據,所以不會占用太多內存,而且數據量很大的時候,分頁查詢會節約一些時間的。

String sql =   SELECT uid,uname FROM t_user LIMIT ?,?   ;
 PreparedStatement ps = con.prepareStatement(sql) ;
 int pageSize = 10000; 
 int pageId = 0; 
 do { 
 pst.setInt(1, pageId * pageSize); 
 pst.setInt(2, pageSize); 
 ResultSet rs = pst.executeQuery();
 boolean isEmpty = true; 
 while (rs.next()) { 
 isEmpty = false; 
 id = rs.getInt(1); 
 name = rs.getString(2); 
 } 
 if (isEmpty) { 
 break; 
 } 
 pageId++; 
 } while (true); 
 con.close(); 
 } catch (SQLException e) { 
 e.printStackTrace(); 
 }

添加 url 參數配置

在 jdbc 的 URL 上加兩個參數就 OK,成功解決內存溢出的問題。

jdbc:mysql://localhost:3306/db3?useCursorFetch=true defaultFetchSize=100

(解釋一下 Fetch,當我們執行一個 SQL 查詢語句的時候,需要在客戶端和服務器端都打開一個游標,并且分別申請一塊內存空間,作為存放查詢的數據的一個緩沖區。這塊內存區,存放多少條數據就由 fetchsize 來決定,同時每次網絡包會傳送 fetchsize 條記錄到客戶端)

以上是“sql 查詢數據過多內存溢出的解決方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-16發表,共計986字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 通化市| 台东市| 台州市| 惠安县| 天峻县| 云浮市| 册亨县| 金堂县| 苍南县| 武强县| 自治县| 分宜县| 广元市| 鄂伦春自治旗| 磴口县| 山阳县| 伽师县| 平和县| 嘉祥县| 化州市| 商南县| 康乐县| 尚义县| 汤原县| 嘉兴市| 宿松县| 克什克腾旗| 白城市| 高邮市| 兰西县| 健康| 兴和县| 达拉特旗| 汾阳市| 福海县| 凤冈县| 宁海县| 汉源县| 方城县| 大城县| 察雅县|