91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-01-15 10:01:13 來源:億速云 閱讀:459 作者:小新 欄目:數據庫

這篇文章主要介紹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查詢數據過多內存溢出的解決方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

镇安县| 瑞安市| 莒南县| 徐水县| 云安县| 油尖旺区| 体育| 昭平县| 定南县| 娄烦县| 疏附县| 保靖县| 赤城县| 丹江口市| 克什克腾旗| 资阳市| 望奎县| 六盘水市| 海门市| 平南县| 福海县| 石楼县| 广州市| 云梦县| 康定县| 丹棱县| 垫江县| 宜城市| 望江县| 平凉市| 乐山市| 平潭县| 大名县| 宁强县| 蕲春县| 南开区| 新龙县| 罗山县| 聂拉木县| 上蔡县| 峨眉山市|