mysql数据库如何快速导入大规模数据_利用load data提升效率

张开发
2026/5/13 0:33:35 15 分钟阅读
mysql数据库如何快速导入大规模数据_利用load data提升效率
LOAD DATA INFILE 比 INSERT 快十倍以上因其绕过 SQL 解析、单行事务开销和网络往返而 INSERT 需走完整查询生命周期且默认每行自动提交。LOAD DATA INFILE 为什么比 INSERT 快十倍以上因为 LOAD DATA INFILE 是 MySQL 原生批量导入机制绕过了 SQL 解析、单行事务开销和网络往返而逐条 INSERT 每次都要走完整查询生命周期还默认在 autocommit 模式下每行提交一次事务。实操建议确保数据文件是纯文本如 CSV字段分隔符统一常用 或 ,无 BOM 头目标表最好提前建好且关闭唯一索引和外键检查SET unique_checks0; SET foreign_key_checks0;导入后记得恢复SET unique_checks1; SET foreign_key_checks1;否则后续插入可能出错如果用的是 MyISAM 引擎还能加 DISABLE KEYS导入完再 ENABLE KEYS进一步跳过索引维护本地文件无法加载检查 secure_file_priv 和 LOCAL 关键字常见错误现象ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement —— 这说明 MySQL 只允许从特定目录读取文件。实操建议先查限制路径SHOW VARIABLES LIKE secure_file_priv;把数据文件放到该路径下才能用 LOAD DATA INFILE如果必须从客户端本地读比如你用 mysql 客户端连远程库改用 LOAD DATA LOCAL INFILE但服务端和客户端都得开启支持local_infileONMySQL 8.0 默认禁用 LOCAL启动客户端时要加 --local-infile1否则会静默失败或报错 ERROR 1148字段映射错位、NULL 和空字符串混了怎么办CSV 字段数不匹配、时间格式不对、数字里夹空格都会导致整行被跳过默认不报错只在 warning 里提示非常隐蔽。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手依托大模型帮助用户记录、整理和分析音视频内容体验用大模型做音视频笔记、整理会议记录。

更多文章