首页 新闻 赞助 找找看

mysql插入多条记录的问题

0
悬赏园豆:5 [已解决问题] 解决于 2013-11-11 07:32

将多个insert命令拼成一条后执行,会比分别执行效率高很多吗?有没有特别的必要这么做。

c#里拼成的string最长能到多少,会不会命令太长string放不下了啊?

MySqlCommand mySqlCommand = new MySqlCommand(sql, connection);

mySqlCommand.ExecuteNonQuery();

Jingle Guo的主页 Jingle Guo | 初学一级 | 园豆:134
提问于:2013-11-10 09:51
< >
分享
最佳答案
0

拼接sql的时候,还是使用StringBuilder,mysql的多条insert语句,如

insert into Phone(StartNum,EndNum,CityAddress,ProvinceAddress)values('','','',''),() ,() --后跟(插入内容)

效率还是多条一块执行比较快,具体你可以自己测试,循环插入几千条,就很明显了

收获园豆:3
秋壶冰月 | 大侠五级 |园豆:5903 | 2013-11-10 18:05
其他回答(3)
0

多个Insert拼成一条执行有如下好处

1 程序只需要申请一次连接,

2 数据库只需要编译一次sql语句

但是没必要刻意的去这么做。

我们用 string.Length 读取字符串长度,它是int类型,所以理论上 Int32.MaxValue 就是string.Length 能达到的最大值。

收获园豆:1
Zery | 园豆:6151 (大侠五级) | 2013-11-10 10:33

可以开一次连接以后mySqlCommand.ExecuteNonQuery();多次

支持(0) 反对(0) Jingle Guo | 园豆:134 (初学一级) | 2013-11-10 15:08
0

1、没有必要这样做。

2、MySQL默认不支持多行

3、效率不会有数量级的提升。

收获园豆:1
爱编程的大叔 | 园豆:30839 (高人七级) | 2013-11-10 10:41

默认不支持多行吗?但是貌似它的默认连接是支持多行的啊http://dev.mysql.com/doc/connector-net/en/connector-net-connection-options.html里面说AllowBatch是控制是否支持多行的,它的默认参数是支持啊?

支持(0) 反对(0) Jingle Guo | 园豆:134 (初学一级) | 2013-11-10 15:12
0

多行插入,放在一个事物会提升速度。如果放在一条指令中,相对来说,会减少连接的数量。

幻天芒 | 园豆:37175 (高人七级) | 2013-11-10 13:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册