如何将JSON,Text,XML,CSV 数据文件导入 MySQL

结论: 1 . 导入文本或CSV文件:设计数据库表,使用LOAD DATA LOCAL INFILE命令导入,并确保local-infile配置打开。
2 . 导入 XML 文件:使用 LOAD XML 或使用 Load_File 和 ExtractValue 函数编写组合存储过程。
3 .导入JSON文件:使用common-schema或mysqljsonimport工具的extract_json_value函数。
4 . 使用 MySQL Workbench:通过表数据导出和导入向导导入 CSV 和 JSON 文件。

MySQL如何处理大数据量导入?LOAD_DATA_INFILE的优化与实战!

说白了,使用MySQL的LOADDATAINFILE导入大量数据的关键是做好充足的准备,漂亮地调整参数,然后彻底处理错误。

首先,最重要的是数据预处理一定要严谨。
去年我们运行那个项目的时候,1 GB的CSV直接导入就直接崩溃​​了。
后来我们发现是因为里面有乱码换行,所以我们用Python脚本统一为UTF-8 并添加引号修复。
还有一点是,当文件超过3 GB时,需要分批,比如1 0万行,这样可以快速定位问题。
还有另一个关键细节,例如使用 IGNORE 1 ROWS 跳过标题,但不要忽略 FIELDS ENDED BY。
去年,一位同事因此失去了所有作为分隔符的逗号。
说实话,当时确实挺尴尬的。

一开始我以为将innodb_flush_log_at_trx_commit设置为0是最快的,但后来发现这是错误的。
业务场景要求数据不能丢失。
切换到2 后速度提升了3 0%,而且很安全。
等等,还有一件事。
在导入之前删除非主键索引可以节省大量时间。
我们当时删除了 5 个索引,导入速度提高了一倍。

最后提醒:监控进度时不要只看进度条。
information_schema.processlist 的显示有时会滞后。
最好在脚本中添加休眠并等待其同步。