在MySQL5.6之后出现了快速导入导出数据量大的表的方式
1.由于这个属性默认是关闭的,小编建议最好查询一下该功能是否正常开启
show global variables like '%secure_file_priv%'; # show global variables 查询mysql系统配置
如下图,表示已经开启(如果查询出来的值为 null 表示没有开启)
2.开启快速导入导出
修改 MySQL 配置文件(windows my.ini、linux my.cnf)
在[mysqld]下添加 secure_file_priv=''
(补充)
secure_file_priv 的值可以为某个路径,表示只能导出到某个路径下,空字符串表示所有路径都可以
3.重启 MySQL 服务
4.执行快速导出(200w数据大概几秒即可全部导出(仅供参考))
select * into OUTFILE '导出绝对路径/文件名.txt' from 表名;
5.快速导入(需要先创建要导入的表)(200w数据本地导入大概需要15秒左右(仅供参考))
load data infile '文件绝对路径/文件名.txt' INTO TABLE 表名;
以上就是相关操作,小编测试的表都是字段比较少的(4、5)个,而且每一列数据也不超过10个字符
(补充)
如果在步骤4和步骤5中的路径不是绝对路径,那么会发生错误
如果没有写路径,MySQL 会默认去该数据库的存储目录文件中查找(由于安装 MySQL 时会配置,这个要根据实际情况来定。如果不知道数据库路径
可以用查询系统命令来查看数据库文件的路径
show global variables like '%datadir%';
下图是小编的 MySQL 数据库目录
在这里每一个数据库都会创建以数据库名为文件夹的目录
每一个表都会在该目录下根据不同的数据库引擎类型创建不同的存储文件
原文来自https://www.cnblogs.com/chbyiming-bky/articles/11090547.html