批量插入sql技巧

Posted subendong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量插入sql技巧相关的知识,希望对你有一定的参考价值。

方式一:

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技巧的主要内容,如果未能解决你的问题,请参考以下文章

MS SQL 技巧总结--持续更新

sql server有批量插入和批量更新的sql语句吗

sql MySQL的创建存储过程批量插入的一段代码

Java Web 工作技巧总结 16.10

JPA SQL Server 批量插入

读取逗号分隔值并批量插入SQL表