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脚本。
如何在 Arch Linux 中更改默认的 MySQL/MariaDB 数据目录WSL 中 systemd 的使用指南