逐笔处理优化为批量处理 针对数据库、redis等减少网络交互,提升性能【附代码】

今天爱分享给大家带来逐笔处理优化为批量处理 针对数据库、redis等减少网络交互,提升性能【附代码】,希望能够帮助到大家。
针对数据库的读,数据量大时用分页读
具体写法看持久化框架是否支持以及数据库,以下是oracle我比较推荐的写法


select *
 from (select a.*, rownum rowno
         from (select t.*
                 from test t
                order by t.create_date desc) a
        where rownum <= 20) b
where b.rowno >= 11;



针对批量数据库的更新或redis澡作,可分批次3000条(具体需根据实际测试情况)处理提交


//对 allList 澡作
List tmpList = new ArrayList<>();
for(int i=0; i < allList.size(); i++){
   tmpList.ad(allList.get(i));
   if(i%5000 ==0){
      handle(tmpList);
      ...
      tmpList=new ArrayList<>();
   } 
}
handle(tmpList);



特殊场景更新可用in条件
针对oracle in的1000条限制:update… where orderNo in (“”, “”, “”) or in(“”, “”, “”)

对文件读,采用批量读取后处理,避免全部读取造成内存溢出,逐笔处理效率差
项目可以用Spring Batch的话,建议FlatFileItemReader读文件。用java实现批量读文件处理我没有实现过,可以自行google网上找代码。

原文链接:https://blog.itblood.com/4008.html,转载请注明出处。
0
仙帝再临V0.9作弊版 [2+4G] [国产RPG]
仙帝再临V0.9作弊版 [2+4G] [国产RPG]
1分钟前 有人购买 去瞅瞅看

站点公告

显示验证码
没有账号?注册  忘记密码?