分享:mysql 批量插入2000多个表,10000多条数据秒完成。

beyondtoday2014 2018-08-11 11:32:33
工作需要对2000多个表同时插入若干数据,经测试原来要3分钟左右,后来查了资料加上事务处理,只需要3秒。分享给大家,希望对大家有帮助。具体做法如下:

// 插入操作
strsql = "insert into table1 (field1,fileld2) values ('v1','v2')";

mysql_query(&mysql,"START TRANSACTION;"); // 开启事务, 如果没有开启事务,那么效率会变得非常低下!

for (int i=0; i<10000; i++)
{
mysql_query(&mysql,strsql.c_str());
}

mysql_query(&mysql,"COMMIT;"); // 提交事务
...全文
927 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmliustar 2019-01-14
  • 打赏
  • 举报
回复
beyondtoday2014楼主,参考您的方法实际操作时,碰到点问题,能否给指点下,谢谢!
圣殿骑士18 2018-08-14
  • 打赏
  • 举报
回复
答案是明显的。不开启事务,是每个for循环就是个事务,1w个循环,就要开关1w个事务。当然慢了。声明了事务,就只用一个事务,所以快。
lyd_dream 2018-08-14
  • 打赏
  • 举报
回复
也想知道 为什么开启事务就会快,我总监上次也是处理大量数据叫我开启事务 但是没说原因 为什么
王桑的一天 2018-08-14
  • 打赏
  • 举报
回复
什么原因,说说根源
zjcxc 2018-08-14
  • 打赏
  • 举报
回复
用 insert values(),()..... 应该更快一些
rucypli 2018-08-13
  • 打赏
  • 举报
回复

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧