You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提速MySQL中外部价格数据至内部表的导入过程?

优化MySQL数据导入速度的最优方案

你原来的方案里,UPDATE操作慢的核心原因是逐行执行子查询——哪怕字段加了索引,大数据量下每条记录都要分别查两次关联表,累积起来的IO和查询开销会非常大。

最快的导入方式是直接在INSERT阶段通过JOIN关联获取对应的ID,一步到位完成数据插入,完全不需要新增临时字段和后续的UPDATE操作:

INSERT INTO internal.prices (articleID, regionID, price)
SELECT 
    a.id AS articleID,
    r.id AS regionID,
    ep.price
FROM external.prices ep
JOIN internal.articles a ON ep.articleNumber = a.articleNumber
JOIN internal.regions r ON ep.regionNumber = r.regionNumber;

额外优化建议(大数据量导入时生效)

  • 关闭自动提交:执行 SET autocommit = 0;,导入完成后再执行 COMMIT;
  • 禁用外键检查:SET foreign_key_checks = 0;,导入后恢复为1
  • 禁用唯一键检查:SET unique_checks = 0;,导入后恢复为1
  • 调整InnoDB缓冲池大小:如果服务器内存充足,临时调大innodb_buffer_pool_size,让更多数据在内存中处理

这样操作的话,整个导入过程只需要一次批量关联查询+插入,效率比先插后更新提升几个数量级。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 09:40:31