首页 > 项目 > 当前页面

将百万excel数据导入到数据库?

2026-07-06 NEW个对象

需要解决问题:


1、冥等,防止重复插入

2、效率,不能太慢

3、错误处理,如果添加失败


解决方案

我会采用 EasyExcel 流式读取 + 固定大小线程池 + 分批事务(每批 500~1000 条)+ 数据库唯一索引保证幂等 + INSERT IGNORE 或 ON DUPLICATE KEY UPDATE + Future 收集结果 的方案。每个批次独立事务,失败只回滚当前批次,不影响其他批次;对于可恢复异常(如死锁、锁等待超时)进行有限次数重试,对于最终失败的批次记录批次号、数据范围和异常原因,支持后续单独重试,而无需重新导入全部数据。同时避免逐条查询数据库校验,而是依赖唯一索引或批量查询,大幅减少数据库访问次数,提升整体导入性能。这样既保证了高性能,也保证了幂等性和可恢复性。


INSERT INTO table_name (column1, column2, ...)

VALUES (value1, value2, ...)

ON DUPLICATE KEY UPDATE column1 = value1, column2 = value2

相关文章

NEW个对象 NEW个对象
JAVA是世界上最好的语言