type
status
slug
summary
tags
category
icon
password
new update day
Property
Oct 22, 2023 01:31 PM
created days
Last edited time
Oct 22, 2023 01:31 PM
前言
最近需要将一些数据导入到 mysql 中,一开始想的是使用 jetbrains 的 DataGrip 工具,但是在折腾了好久导入的时候发现,因为每个 csv 文件比较大的问题,导致每次导入的时候,数据都无法完整导入,600W条数据,可能只导入了100W,而且经常卡死(MMP,浪费了我那么多的时间,我还一个一个的修改对应的表定义,人麻了。。。。)
在经过查找资料之后发现,使用
LOAD DATA
语句能够更可靠的导入大数据文件,于是进行了一些工具的开发操作。LOAD DATA 语法介绍
如果想进行批量导入,你可以使用LOAD DATA INFILE SQL语句,这种方法速度快,适合大数据文件。你可以在一个SQL脚本中写多个LOAD DATA INFILE语句,分别指定不同的csv文件的路径和格式,以及要导入的数据库和表名。例如:
然后你可以执行这个SQL脚本,就可以将所有的csv文件导入到同一个表中了。
shell 脚本自动化
这是一个可能的shell脚本,你可以根据你的需要修改它:
运行
运行前准备
创建对应的表
执行 sql 脚本
你可以使用以下方法来使用mysql运行这个SQL脚本:
- 一种是在命令行中执行,这种方法比较快捷。你需要先登录到mysql服务器,然后指定要执行SQL脚本的数据库,然后使用重定向符号(<)来执行SQL脚本文件。例如:
- 另一种是在mysql中执行,这种方法比较灵活。你需要先登录到mysql服务器,然后指定要执行SQL脚本的数据库,然后使用source命令来执行SQL脚本文件。例如:
你可以根据你的需求和喜好选择一种方法来运行这个SQL脚本。
- 作者:tangcuyu
- 链接:https://expoli.tech/articles/2023/05/09/mysql-batch-import-csv-large-files
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章