MySQL导入大量数据(百万级)时可能遇到的问题和解决办法(思路)

MySQL导入大量数据时可能遇到的问题和解决办法(思路)

可能遇到的问题

1、使用软件导入数据时,可能因为数据量大,造成软件的崩溃,或者由于配置不当,导致导入错误。
2、在数据库命令行下导入,由于数据量大,造成导入困难。

解决思路

这里提供一个不使用数据库连接软件,在数据库命令行下导入数据的思路。这里MySQL数据的安装环境为Centos7 。方法如下。

1、准备导入的数据,根据要求编辑为可用的格式。在命令行下导入,将每一条数据编辑为一行的插入语句,注意语句不要错误。
2、对于需要批量修改的情况,可以使用“notepad–” 软件的大文件修改模式进行批量修改。
大文件处理模式
3、登录数据库命令行,推荐两种方式,一个是数据库所在的服务器直接登录。如果是linux下的数据库,建议使用xshell软件登录,并配置保持连接,以防止语句执行过程中断连,造成语句执行中断。配置长连接的位置如下。
在这里插入图片描述
在这里插入图片描述
4、将需要导入的语句编辑为“.sql”文件,文件的编码为UTF-8,如果导入语句的SQL文件过大,可以在linux下使用命令对文件进行拆分,方法如下。
详细操作步骤:

linux系统打开终端,进入SQL文件所在目录。
执行拆分命令。例如,按10万行拆分,并生成带数字后缀 .sql 文件:

split -l 100000 你的大文件.sql 拆分后_ -d --additional-suffix=.sql

拆分后,会得到类似 拆分后_00.sql、拆分后_01.sql 等文件。
要点:split 是Linux/macOS自带工具,无需额外安装。优先使用按行拆分 (-l),以确保每个拆分文件中的SQL语句都是完整的。
5、语句导入。登录数据库

mysql -u你的用户名 -p你的密码 你的数据库名 --default-character-set=utf8mb4

使用source命令导入sql文件

source /文件的完整/路径/你的.sql;

6、如果不想登录数据库,可以在数据库服务器终端下输入如下命令。

nohup mysql -u用户名 -p密码 数据库名 -e "SET SESSION wait_timeout=86400; source /路径/大文件.sql;" > import.log 2>&1 &

注意 : 数据无价,在对数据库进行操作前,一定做好数据备份,所有操作建议在测试环境中测试无误后,再进行相关操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mwmbfh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值