最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

[转载]mysql插入大量数据_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 18:37:57
文档

[转载]mysql插入大量数据_MySQL

[转载]mysql插入大量数据_MySQL:bitsCN.com mysql的批量数据格式, 比如 INSERT INTO TABLES (LABLE1,LABLE2,LABLE3...)  VALUES(NUM11,NUM12,NUM13...),  (NUM21,NUM22,NUM23...), .... (NUMn1,NUMn2,NUMn3..); 我在前文
推荐度:
导读[转载]mysql插入大量数据_MySQL:bitsCN.com mysql的批量数据格式, 比如 INSERT INTO TABLES (LABLE1,LABLE2,LABLE3...)  VALUES(NUM11,NUM12,NUM13...),  (NUM21,NUM22,NUM23...), .... (NUMn1,NUMn2,NUMn3..); 我在前文

bitsCN.com

mysql的批量数据格式,

比如
INSERT INTO TABLES (LABLE1,LABLE2,LABLE3,...) 
VALUES(NUM11,NUM12,NUM13,...), 
(NUM21,NUM22,NUM23,...),
....
(NUMn1,NUMn2,NUMn3,..);

我在前文中叙述的,每个账户的每个采集点就会生成几百个数据,这几百个数据我组合成上述一条语句,20多个账户多个采集点我一共生成上述语句300--800多条,每条的数据项300-500个,所以每次插入的数据共计10000--50000条。

我把每条insert语句都保存在一个SQLStringList之中,又 在网上找点资料,采用了事务处理方式,本来我的事务方式是所有sql语句放在一个事务里,但有热心朋友告知“每当执行1000条DBCommand就提交(Commit)事务,然后再次开启事务,这样比较好。把过多的命令放在一个事务中,一旦超过物理内存分配限制,你的程序会变得很慢很慢。”

所以我后来修改了一下,每500条语句重启一次事务。c#代码如下:

 1: public static void ExecuteSqlTran(List SQLStringList) 
 2: { 
 3: using (MySqlConnection conn = new MySqlConnection(MySqlHelper.ConnStr)) 
 4: { 
 5: conn.Open(); 
 6: MySqlCommand cmd = new MySqlCommand(); 
 7: cmd.Connection = conn; 
 8: MySqlTransaction tx = conn.BeginTransaction(); 
 9: cmd.Transaction = tx; 
 10: try
 11: { 
 12: for (int n = 0; n < SQLStringList.Count; n++) 
 13: { 
 14: string strsql = SQLStringList[n].ToString(); 
 15: if (strsql.Trim().Length > 1) 
 16: { 
 17: cmd.CommandText = strsql; 
 18: cmd.ExecuteNonQuery(); 
 19: } 
 20: //后来加上的
 21: if (n > 0 && (n % 500 == 0 || n == SQLStringList.Count - 1)) 
 22: { 
 23: tx.Commit(); 
 24: tx = conn.BeginTransaction(); 
 25: } 
 26: } 
 27: //tx.Commit();//原来一次性提交
 28: } 
 29: catch (System.Data.SqlClient.SqlException E) 
 30: { 
 31: tx.Rollback(); 
 32: throw new Exception(E.Message); 
 33: } 
 34: } 
 35: } 
bitsCN.com

文档

[转载]mysql插入大量数据_MySQL

[转载]mysql插入大量数据_MySQL:bitsCN.com mysql的批量数据格式, 比如 INSERT INTO TABLES (LABLE1,LABLE2,LABLE3...)  VALUES(NUM11,NUM12,NUM13...),  (NUM21,NUM22,NUM23...), .... (NUMn1,NUMn2,NUMn3..); 我在前文
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top