将多个insert命令拼成一条后执行,会比分别执行效率高很多吗?有没有特别的必要这么做。
c#里拼成的string最长能到多少,会不会命令太长string放不下了啊?
MySqlCommand mySqlCommand = new MySqlCommand(sql, connection);
mySqlCommand.ExecuteNonQuery();
拼接sql的时候,还是使用StringBuilder,mysql的多条insert语句,如
insert into Phone(StartNum,EndNum,CityAddress,ProvinceAddress)values('','','',''),() ,() --后跟(插入内容)
效率还是多条一块执行比较快,具体你可以自己测试,循环插入几千条,就很明显了
多个Insert拼成一条执行有如下好处
1 程序只需要申请一次连接,
2 数据库只需要编译一次sql语句
但是没必要刻意的去这么做。
我们用 string.Length 读取字符串长度,它是int类型,所以理论上 Int32.MaxValue 就是string.Length 能达到的最大值。
可以开一次连接以后mySqlCommand.ExecuteNonQuery();多次
1、没有必要这样做。
2、MySQL默认不支持多行
3、效率不会有数量级的提升。
默认不支持多行吗?但是貌似它的默认连接是支持多行的啊http://dev.mysql.com/doc/connector-net/en/connector-net-connection-options.html里面说AllowBatch
是控制是否支持多行的,它的默认参数是支持啊?
多行插入,放在一个事物会提升速度。如果放在一条指令中,相对来说,会减少连接的数量。