怎么实现mysql批量提交数据

怎么实现mysql批量提交数据,第1张

*** 作方法如下:1、首先需要在mysql管理工具上面新建一个表,也可以用mysql命令创建,表建立完成之后,需要将表中的字段名字告诉给填写excel表的人员。

2、打开excel表,按照程序提供的字段填写相应的数据,需要跟程序提供的一样,其他的描述。.

3、使用的mysql管理工具Navicatfor MySQL,打开工具,选择表所在的数据库,然后点击数据库名字,右键数据,出来下拉菜单选择import wizard ,有汉化版本的更明确.d出一个选择界面,选择excel file文件。

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

5、点击next (此步骤也是关键步骤),需要注意2点: 1:filedname row 就是字段所在excel中的位置,也就是第几行(简单办法,一般就是英文对应的那一列).2:first data row(从哪一行开始执行),数据从哪一行开始。.

6、点击next选择 targettable 目标对应的数据库,选择要导入到哪个数据库中表中。

7、如果到上面一步没有问题的话,默认next到最后 就行了.然后打开表就能看到数据跟excel表中的一样。

-- 判断存储test是否存在,如果存在则删除

DROP PROCEDURE IF EXISTS test

-- 创建存储过程

CREATE PROCEDURE test()

BEGIN

-- 声明循环变量int型 i

DECLARE i INT DEFAULT 1

-- 设置i=0

set i=0

-- 循环100次

while i<100 do

-- if判断i为偶数

if i%2 = 0 THEN

-- 要实现的 *** 作  CONCAT(str1,str2,...) concat函数用于拼接子串和数字类型

INSERT into user(name,addr) VALUES(CONCAT('test',i,'ss'),'addr')

end if

-- i自增

set i=i+1

END WHILE

END

-- 调用存储过程

CALL test()

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

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

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

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

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

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

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

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


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

原文地址: http://outofmemory.cn/zaji/7370533.html

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

发表评论

登录后才能评论

评论列表(0条)

保存