百万数据excel导入
1 使用工具包
jar包提供了一个ReadListener接口, 去实现此接口的invoke方法
每解析完一行数据,都会调用一次invoke方法进行数据入库, 这行数据会被封装成Salaries对象
结论一:
单线程解析和单线程单条数据插入数据库,两万条数据大概耗时2分钟
为了提升性能可以改为批量插入
批量插入: 将解析完的数据保存在ThreadLocal中, 然后设置如果ThreadLocal中数据超过1万条则进行批量插入, 插入完数据库后再清空ThreadLocal中数据
结论二: 单线程解析, 单线程批量插入,一百万条数据大概耗时5分钟
改为多线程解析, 前提是,一个excel中有多个sheet,例如数据保存在20个sheet中, 使用线程池,则可以开启20个线程进行解析
结论三: 多线程进行解析,单线程批量插入,大概耗时2分钟
结论四: 多线程解析,多线程批量插入数据库,耗时大概1分钟