介绍
这期内容当中小编将会给大家带来有关使用。网络核心怎么将大量数据导入至Mysql数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
订单测试表
CREATE TABLE “贸易”,( “id”,才能VARCHAR (50), NULL DEFAULT NULL COLLATE & # 39; utf8_unicode_ci& # 39; “trade_no”,才能VARCHAR (50), NULL DEFAULT NULL COLLATE & # 39; utf8_unicode_ci& # 39; UNIQUE 才能;INDEX “id”, (“id”), INDEX 才能“trade_no”, (“trade_no”) ) 评论=& # 39;订单& # 39; 整理=& # 39;utf8_unicode_ci& # 39; 引擎=InnoDB;
测试环境
操作系统:窗口10专业版
CPU:国际米兰(R) (TM)核心i7 - 8650 u @1.90GHZ 2.11 GHZ CPU
内存:16 g
MySQL版本:5.7.26
引用>实现方法:
1,单条数据插入
这是最普通的方式,通过循环一条一条的导入数据,这个方式的缺点很明显就是每一次都需要连接一次数据库。
实现代码:
//开始时间 var startTime =, DateTime.Now; 时间=using (var conn new MySqlConnection (connsql)) { ,,,conn.Open (); ,,,//插入10万数据 ,,,for (var 小姐:=,0;,小姐:& lt;, 100000;,我+ +) ,,,{ ,,,,,,,//插入 ,,,,,,,var sql =, string.Format (“insert  into 贸易(id、trade_no),值(& # 39;{0}& # 39;,& # 39;{1}& # 39;);“, ,,,,,,,,,,,Guid.NewGuid () .ToString (),“trade_", +,(小姐:+,- 1) ,,,,,,,,,,,); ,,,,,,,var sqlComm =, new MySqlCommand (); ,,,,,,,sqlComm.Connection =,康涅狄格州; ,,,,,,,sqlComm.CommandText =, sql; ,,,,,,,sqlComm.ExecuteNonQuery (); ,,,,,,,sqlComm.Dispose (); ,,,} ,,,conn.Close (); }//完成时间 var endTime =, DateTime.Now;//耗时 var spanTime =, endTime 作用;开始时间; Console.WriteLine(“循环插入方式耗时:“,+,spanTime.Minutes +,“分”,+,spanTime.Seconds +,“秒”,+,spanTime.Milliseconds +,“毫秒“);10万条测试耗时:
上面的例子,我们是批量导入万10条数据,需要连接10万次数据库。我们把SQL语句改为1000条拼接为1条,这样就能减少数据库连接,实现代码修改如下:
//开始时间 var startTime =, DateTime.Now; 时间=using (var conn new MySqlConnection (connsql)) { ,,,conn.Open (); ,,,//插入10万数据 ,,,var sql =, new StringBuilder (); ,,,for (var 小姐:=,0;,小姐:& lt;, 100000;,我+ +) ,,,{ ,,,,,,,//插入 ,,,,,,,sql.AppendFormat (“insert  into 贸易(id、trade_no),值(& # 39;{0}& # 39;,& # 39;{1}& # 39;);“, ,,,,,,,,,,,Guid.NewGuid () .ToString (),“trade_", +,(小姐:+,- 1) ,,,,,,,,,,,); ,,,,,,,//合并插入 ,,,,,,,if (小姐:%,1000,==,999) ,,,,,,,{ ,,,,,,,,,,,var sqlComm =, new MySqlCommand (); ,,,,,,,,,,,sqlComm.Connection =,康涅狄格州; ,,,,,,,,,,,sqlComm.CommandText =, sql.ToString (); ,,,,,,,,,,,sqlComm.ExecuteNonQuery (); ,,,,,,,,,,,sqlComm.Dispose (); ,,,,,,,,,,,sql.Clear (); ,,,,,,,} ,,,} ,,,conn.Close (); }//完成时间 var endTime =, DateTime.Now;//耗时 var spanTime =, endTime 作用;开始时间; Console.WriteLine(“循环插入方式耗时:“,+,spanTime.Minutes +,“分”,+,spanTime.Seconds +,“秒”,+,spanTime.Milliseconds +,“毫秒“);10万条测试耗时: