2、用存储过程,来解决大量数据的CRUD是最明智的选择。写个存储过程,把数据一千条或几条的传给存储过程,由存储过程去解析,然后CRUD就能从本质上解决这个问题了。
这也是为何电信运营商的数据库应中,都是大量的存储过程即pl/sql的原因了。
批量处理每10000条(根据机器内存情况调整)循环一次
使用hibernate的session对10000条数据进行循环,每50条刷新一次
配置hibernate sql批量提交的条目数,设置成50
我数据库用的是db2,10万条效率还算可以
首先回答1、2的问题:>executeQuery(strSql)主要是消耗DB服务器上的内存
>while(rs.next)是消耗WEB服务器上的内存
对于500W条数据,不论DB服务器还是WEB服务器,都会消耗很多内存.
3、“取一条记录,保存一条记录到文件中”:这样做会在一定程度上会节约很多内存(在500W条数据时会很明显),但是在取 *** 作上可能会麻烦点,增加了复杂度,在实际运用中要看项目的具体取舍。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)