查出一张表的数据要往4张表里插入,而四张表得依次插入不能单独循环插入,导致4张表每条数据都得获取一次JDBC连接,然后再关闭,15w数据运行时间为6h
两部优化:
1.查出需要插入的数据的所有id,再以partition方法切片成多个List,再以list的第一个数与最后一个数查询两id之间的数据,而不是一次性全查出来,影响java处理性能
2.因为4张表都是同一个库,把获取连接单独抽取出来作为一个全局变量,关闭连接也单独写一个方法,在for循环之前就获取连接,for循环结束才关闭连接,亲测15w数据运行时间为22分钟,省了5个多小时