大文件csv与小文件导入mysql的表中(图形化命令都有)

Posted 咸鱼都能看懂的代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大文件csv与小文件导入mysql的表中(图形化命令都有)相关的知识,希望对你有一定的参考价值。

最近尝试csv文件导入,因为之前太菜就用普通图形窗口导入,但是速度很慢,于是做了总结:

目前我这里一共两种方法:

1.窗口 mysql  workbench导入 (适用范围:对数据库不了,要导入的csv文件比较小,不超过1万行适用)【速度慢】

2.命令式导入      (适用范围:对数据库命令了解,要导入百万行大数据)【速度快】

一.图形化

图形化界面,找到电脑左下角的开始,找到wokbench 这个可视化软件,没有的是当初安装mysql没有下载他的可视化捆绑程序,自己可以百度解决。

 运行程序后,进入root

 在下图空白处右键,Create schema建立新的数据库

 然后找到刚刚建立的数据库左侧角标点击展开,在Table上鼠标右键,选择Table Data Import Wizard.

 选择csv文件路径,然后点击next

 然后下个页面以为我们没有创建表,所以他的默认选项是帮我们创建一个表,大家可以直接点击next

 然后再次点击next,他会帮我们选择列的类型,你也可以自己选,下方是预览情况

 继续点击next,再点击next完工,你会发现你创建的数据库表下已经有表了,记得手动刷新一下左侧列表,表才会出现。

 博主在导入时候,数据太多,导入过慢受不了了,于是使用了命令式导入。

二.命令式导入

测试100万行数据只用了13秒,首先在windows开始菜单栏找到mysql  8.0 Command Line Client

 点击进入会让输入密码,密码输错就会直接闪退,我就是这样,最后不得不卸载重新安装了mysql

然后开始输入命令

 首先输入

show variables like '%secure%';

然后回车,如果出现secure_file_priv=' ',恭喜你可以直接进行下一步,

如果里面出现了不为空,比如某些路径我的是在C:/Program Data/MySQL Server 8.0/Uploads/   注意这里的Program Data是隐藏文件夹,需要点击上方的查看隐藏文件夹才能看到,大家需要到mysql安装目录下修改my.ini文件,位置在下图,可以到桌面上创建修改好后,再拖拽过来。

注意:如果没有找到my.ini文件,这个文件大概率在上面输入的某些路径里面(橙色字体指代一个东西),可以顺着某些路径找到位置,我的就是这样,

my.ini添加文件内容如下:

secure_file_priv=''

 接下来重启一下mysql就行了。

回到刚刚的命令窗口

show variables like 'local_infile';

结果为off,需要改成on.

set global local_infile=on;

然后你需要对着这你的csv文件,在数据库里面新建个库database,然后在Table鼠标右键在里面create一张新表,我个人建议上面图形化方法让mysql帮你鉴定每一列的类型再对比创建表,不然后面导入一直报错。可能我对类型了解的不够深入。

接下来就是开始导入命令,这里有个建议,建议csv文件放到上面橙色某些路径的文件夹下,可以减少一些不必要的麻烦。

show databases;

查看所有的数据库

use 某某数据库;

选择数据库,下面换成你自己的csv文件地址

load data infile 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/1.csv' #换成自己地址
into table ship_info #换成你自己表名
fields terminated by','optionally enclosed by '"' escaped by '"'
lines terminated by '\\r\\n';

回车大功告成,你就可以回去刷新一下,看看有没有出现表。成功图如下。

以上是关于大文件csv与小文件导入mysql的表中(图形化命令都有)的主要内容,如果未能解决你的问题,请参考以下文章

如何将 CSV 文件导入 MySQL 表?

在 ORacle 10g 中导入 MySql 生成的 csv 大文件

MySQL-导入与导出

将 CSV 导入到 postgreSQL 中的表中,忽略重复项 - 亚马逊 AWS/RDS

通过验证将 csv 文件内容加载到 mysql 表中

java读取csv写入数据库