怎样把大量Excel数据导入到MySQL数据库

怎样把大量Excel数据导入到MySQL数据库,第1张

方法/步骤

首先我们需要在mysql管理工具上面新建一个表,也可以用mysql命令创建,表建立完成之后,你需要将表中的字段名字告诉给填写excel表的人员.

打开excel表,按照程序提供的字段填写相应的数据.此时注意下面几点:名字(我用红色标示出来了)需要跟程序提供的一样,其他的描述,表头可以不写都行.

我使用的mysql管理工具是navicat

for

mysql,打开工具,选择表所在的数据库,然后点击数据库名字,右键数据,出来下拉菜单选择import

wizard

,有汉化版本的更明确.d出一个选择界面,我们选择excel

file文件

点击next(下一步),我们选择我们对应的excel文件就行,然后再下面选在我们的文件内容在哪一个sheet中,也就是你的内容写在excel什么地方,这点需要注意,也是关键的地方,我的内容在sheet3中,所以我选择sheet3

,如图:

点击next

(此步骤也是关键步骤),需要注意2点:

1:filed

name

row

就是你的字段所在excel中的位置,也就是第几行(简单办法,一般就是英文对应的那一列).2:first

data

row(从哪一行开始执行),数据从哪一行开始呢,我这里选择的是3,4.

点击next

我们选择

target

table

目标对应的数据库,选择你要导入到哪个数据库中表中.

7

如果到上面一步没有问题的话,我们默认next到最后

就行了.然后打开表就能看到数据跟excel表中的一样.

首先, 插入上万条数据,对于数据库来说并不是“很大”的工作量,一般配置的笔记本电脑都可以在1分钟内完成。 所以最简单、最灵活的办法还是写SQL语句。

如果不希望DB编译器每次执行都编译SQL的话,可以使用存储过程,直接调用,性能上会好很多。也比较简单。

(几万条数据怎么地也得要时间去处理,所以不可能特别快的。)

如果由于各种原因,导致这个插入还是很慢, 而且你的MYSQL又是5.0以上版本的话,可以使用BulkCopy来进行批量 *** 作。

BulkCopy的原理就是Client直接把一个数组(DataTable)传给DB,然后传入表名,所有的编译、 *** 作都由DB自己完成,效率很高。

引用MySql.Data.dll , 调用MysqlBulkCopy函数即可。

这个函数在处理海量数据插入的时候效率尤为明显, 小量数据反而没什么优势,而且由于传入的DataTable格式必须和表的字段一模一样(空的列也要传进去),导致C#要写很多代码来构造这个数组,所以要你自己权衡用还是不用。

我在自己的电脑上批量插入一亿条数据,Insert写法大概需要1小时,BulkCopy大概只需要5分钟。

mysql数据库的导入,有两种方法:

1)

先导出数据库sql脚本,再导入;

2)

直接拷贝数据库目录和文件。

在不同 *** 作系统或mysql版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。

所以一般推荐用sql脚本形式导入。下面分别介绍两种方法。

2.

方法一

sql脚本形式

*** 作步骤如下:

2.1.

导出sql脚本

在原数据库服务器上,可以用phpmyadmin工具,或者mysqldump命令行,导出sql脚本。

2.1.1

用phpmyadmin工具

导出选项中,选择导出“结构”和“数据”,不要添加“drop

database”和“drop

table”选项。

选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。

将导出的sql文件保存下来。

2.1.2

用mysqldump命令行

命令格式

mysqldump

-u用户名

-p

数据库名

>

数据库名.sql

范例:

mysqldump

-uroot

-p

abc

>

abc.sql

(导出数据库abc到abc.sql文件)

提示输入密码时,输入该数据库用户名的密码。

2.2.

创建空的数据库

通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。

2.3.

将sql脚本导入执行

同样是两种方法,一种用phpmyadmin(mysql数据库管理)工具,或者mysql命令行。

2.3.1

用phpmyadmin工具

从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。

在"sql"菜单中,浏览选择刚才导出的sql文件,点击“执行”以上载并执行。

注意:phpmyadmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件

比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。

gzip使用方法:

#

gzip

xxxxx.sql

得到

xxxxx.sql.gz文件。

提示输入密码时,输入该数据库用户名的密码。

3

直接拷贝

如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和 *** 作系统之间可能不兼容,要慎用。

3.1

准备原始文件

用tar打包为一个文件

3.2

创建空数据库

3.3

解压

在临时目录中解压,如:

cd

/tmp

tar

zxf

mydb.tar.gz

3.4

拷贝

将解压后的数据库文件拷贝到相关目录

cd

mydb/

cp

*

/var/lib/mysql/mydb/

对于freebsd:

cp

*

/var/db/mysql/mydb/

3.5

权限设置

将拷贝过去的文件的属主改为mysql:mysql,权限改为660

chown

mysql:mysql

/var/lib/mysql/mydb/*

chmod

660

/var/lib/mysql/mydb/*

打字不易,如满意,望采纳。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8642139.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-19
下一篇2023-04-19

发表评论

登录后才能评论

评论列表(0条)

    保存