Bohr-L Bohr-L
首页
技术
常见面试题
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

刘博

I'm a slow walker, But I never walk backwards.
首页
技术
常见面试题
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 数据处理与存储类

    • 海量 QQ 号去重【腾讯】
    • 百万级别数据的 Excel 如何快速导入到数据库中
    • 从 MySQL 千万条数据中搜索到指定数据
    • 为什么复杂的架构一定要做分层设计?
    • 什么是网络四元组
  • Spring 生态类

  • 缓存问题类

  • 多线程类

  • JVM 类

  • MySQL 类

  • Java 8 + 特性类

  • 其他技术类

  • 常见面试题
  • 数据处理与存储类
刘博
2025-12-28

百万级别数据的 Excel 如何快速导入到数据库中

Excel 数据导入慢的核心问题是 “单条读取 + 单条插入” 的低效模式,优化方案如下:

  • 步骤 1:预处理 Excel,避免格式干扰:将.xlsx/.xls 转为.csv 格式(减少 Excel 解析开销),或用 Alibaba EasyExcel(轻量级解析库,避免 POI 的内存溢出问题)读取数据,跳过空行、格式错误行。
  • 步骤 2:批量插入替代单条插入:读取数据时按批次(如 1000 条 / 批)缓存,通过数据库的批量插入语法(如 MySQL 的INSERT INTO table (col1,col2) VALUES (v1,v2),(v3,v4)...)或 MyBatis 的<foreach>标签批量提交,减少数据库连接次数(单次连接处理批量数据,降低 TCP 握手和事务提交开销)。
  • 步骤 3:优化数据库配置:关闭自动提交事务(set autocommit=0),批量插入后手动提交;临时关闭索引(插入完成后重建,避免频繁索引更新);若使用 InnoDB,调整innodb_buffer_pool_size(增大缓存)、innodb_flush_log_at_trx_commit=2(降低刷盘频率,适用于非核心数据)。
  • 步骤 4:分布式导入(超大规模场景):若数据超千万级,用 Spark、Flink 等分布式框架读取 Excel 文件(支持分布式存储如 HDFS),并行分批次写入数据库,利用分布式计算提升效率。

上次更新: 12/30/2025
海量 QQ 号去重【腾讯】
从 MySQL 千万条数据中搜索到指定数据

← 海量 QQ 号去重【腾讯】 从 MySQL 千万条数据中搜索到指定数据→

最近更新
01
CPU 使用率较高排查和解决
12-29
02
JVM OOM 问题如何排查和解决
12-29
03
接口防刷怎么实现?
12-29
更多文章>
Theme by Vdoing | Copyright © 2025-2026 Bohr-L's note
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式