码迷,mamicode.com
首页 > 数据库 > 详细

批量插入sql技巧

时间:2019-11-26 13:45:25      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:datetime   color   bin   长度限制   事务   编译   修改   binlog   tab   

方式一:

INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES (0, userid_0, content_0, 0);
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES (1, userid_1, content_1, 1);

方式二:

INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES (0, userid_0, content_0, 0), (1, userid_1, content_1, 1);

第二种比较好。第二种的SQL执行效率高的主要原因是合并后日志量(MySQL的binlog和innodb的事务让日志)减少了,降低日志刷盘的数据量和频率,从而提高效率。

通过合并SQL语句,同时也能减少SQL语句解析的次数,减少网络传输的IO。当SQL指令送达MySQL服务器后,在执行之前,还必须经过编译、解释、词法分析、语义分析等过程,才可以被执行!

SQL语句是有长度限制,在进行数据合并在同一SQL中务必不能超过SQL长度限制,通过max_allowed_packet配置可以修改,默认是1M,测试时修改为8M。

 

批量插入sql技巧

标签:datetime   color   bin   长度限制   事务   编译   修改   binlog   tab   

原文地址:https://www.cnblogs.com/subendong/p/11934547.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!