sql查询数据过多内存溢出的解决方法
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,这篇文章主要介绍sql查询数据过多内存溢出的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正常来说,一般是不会出现这种情况的,但也不能保证,偶尔有这种情况发生,解决方案
千家信息网最后更新 2025年01月25日sql查询数据过多内存溢出的解决方法
这篇文章主要介绍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查询数据过多内存溢出的解决方法"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
查询
数据
内存
方法
过多
内容
参数
客户
客户端
情况
时候
篇文章
语句
很大
成功
两个
价值
兴趣
同时
小伙
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
体感投影触摸软件开发
河北工业软件开发单价
smartbi服务器编码
软件开发都是日语嘛
大话2推荐服务器多久更新一次
文科生学软件开发好吗
数据库打开失败
网络安全设备租赁合同
ibm服务器做raid5
myaql是一个什么型数据库
二维码图片在服务器生成
加大网络安全人员投入
bim 数据库开发
关于数据库视图删除数据库
服务器认内存调
广西系统软件开发有哪些
网络安全法四项原则
服务器从网
22年网络安全厂家排名
互联网和科技相关的文章
体感投影触摸软件开发
两会审议网络安全
tsdb数据库客户端
服务器哪里便宜
骑电科技与互联网
字段互联网杭州科技有限公司
江西籍互联网科技人才
无锡雷华网络技术沈阳分公司
学数据库能找工作吗
中国国家公园与世界遗产数据库