You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python脚本从服务器共享导入海量数据:批量/逐行写入方案咨询

批量插入vs单行插入的性能选择(针对千万级文件审计数据)

毫无疑问,每次批量插入20行数据的性能远优于生成一行插入一行,核心原因如下:

  • 减少数据库交互开销:单行插入每次都要发起独立的数据库请求,哪怕用长连接也会有协议解析、网络往返的消耗;批量操作把多次请求合并成一次,能大幅降低这部分损耗。
  • 降低事务提交成本:单行插入若每插一行就提交事务,数据库要频繁执行日志刷盘、锁释放等操作;批量插入可在单个事务内完成多行写入,减少事务相关的性能消耗。
  • 触发数据库写入优化:主流数据库对批量写入有专门优化逻辑,比如批量解析SQL、减少索引更新次数,单行插入无法触发这些优化。

结合你的场景:数据生成非即时、最终要处理300-400万行,批量20行是合理的起步选择——如果后续测试发现性能还有提升空间,还可以尝试更大的批次(比如100-1000行,具体取决于数据库类型和服务器配置),但20行已经能比单行插入带来显著的性能提升。

相关参考方向

你可以直接查阅以下官方文档的对应章节:

  • MySQL:《MySQL 8.0 Reference Manual》中「INSERT Statement」的批量插入优化说明,以及「Optimizing Bulk Data Loading」部分。
  • PostgreSQL:《PostgreSQL Documentation》中「INSERT」的批量操作说明,以及「COPY」命令的使用场景(若允许使用非标准SQL,COPY效率比批量INSERT更高)。
  • 通用数据库性能优化指南:重点关注「批量操作」「事务提交优化」「网络开销降低」相关内容,几乎所有主流数据库的官方文档都会有这方面的性能建议。

内容的提问来源于stack exchange,提问作者Kendrick

火山引擎 最新活动