Hibernate批量插入设置

young 503 2022-05-19

bis对账文件解析时,随着业务量越来越大,解析也越来越慢,之前是采用单条插入,既保存一条数据获取一个session并开启一个事务,bis采用的是Hibernate做持久层框架,代码如下:

hibernate1
(经测试,20万条数据成功入库需要10小时开外)
2. 随后改为批量插入,在dataSource.xml中加入hibernate.jdbc.batch_size,将数量改为50,batchsize数量越大批量插入越快,经测试50以上效率没有太大提升,并且占用内存比较大,所以选择50,将之前1条一个事务改为10000条一个事务并获取一个session,1000条向数据库提交一次,并清除session(将2个数量参数放到数据库,以便后续量大后再次修改)代码如下:
hibernate2
hibernate3hibernate4
( 经测试批量插入20万条数据只需要4分钟)