Java关于大批量数据处理

在工作中,有时候会遇到大批量的数据处理,为了节省时间,一般会用线程批量处理,先举例几个方案。

1.批量查询,单条处理 (利用线程池处理,线程池最大值:10)

  优势:查询速度快;

           出现异常影响数量小;

           事务处理及时;

  劣势:占用线程数量多;

            处理时间长;

            数据库链接频繁开启、关闭


2.批量查询,批量处理(不使用线程池,原因:数据量过多,事务提交相对较慢,使用线程池可能导致数据库调用异常,影响后续数据插入)

  优势:查询速度快;

            处理速度快;

            不需要频繁开启与关闭数据库连接;

  劣势:事务处理时间较长;

            出现异常影响批量数据;


3.批量查询,分批处理(可以尝试使用线程池,根据处理数据事务响应速度与数据库连接考虑)

  优劣:查询速度快;

           处理速度相对较快;

           异常发生时,影响数据相对较少;

           事务处理不会过长;

           

在需要进行大批量数据处理的时候,可以根据自身需求进行调整,第三个方案比较中庸,负载也小(数据库负载,三个方案都试验过,对CPU与服务器基本无负载),批量处理时需考虑异常数据的处理,需要开发一个单个或根据特定值处理的程序,处理异常数据。

(注:可以直接insert select 的数据不需要考虑,直接通过sql或请DBA处理)

猜你喜欢

转载自blog.csdn.net/qq_24842293/article/details/80969169
今日推荐