本节主要内容:
批量插入上万条数据到mysql的方法
本文使用了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条语句重启一次事务。
例子:
复制代码 代码示例:
///
/// 执行多条SQL语句,实现数据库事务。
/// mysql数据库
/// 多条SQL语句
public static void ExecuteSqlTran(List SQLStringList)
{
using (MySqlConnection conn = new MySqlConne