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