insert插入多条数据有二种方法一种是写多条insert 语句分隔批量执行,
另一种是inser多个value插入数据。
1,写多条insert用";"分割 ,比如:
insert into table (field1,field2,field3) value ('a',"b","c");
insert into table (field1,field2,field3) value ('a',"b","c");
insert into table (field1,field2,field3) value ('a',"b","c");
insert into table (field1,field2,field3) value ('a',"b","c");
insert into table (field1,field2,field3) value ('a',"b","c");
2,在insert中写多个value
INSERT INTO table (field1,field2,field3) VALUES ('a',"b","c"), ('a',"b","c"),('a',"b","c");
并且降低日志刷盘的数据量和频率,从而提高效率。
通过合并SQL语句,同时也能减少SQL语句解析的次数,减少网络传输的IO。
另一种是inser多个value插入数据。
1,写多条insert用";"分割 ,比如:
insert into table (field1,field2,field3) value ('a',"b","c");
insert into table (field1,field2,field3) value ('a',"b","c");
insert into table (field1,field2,field3) value ('a',"b","c");
insert into table (field1,field2,field3) value ('a',"b","c");
insert into table (field1,field2,field3) value ('a',"b","c");
2,在insert中写多个value
INSERT INTO table (field1,field2,field3) VALUES ('a',"b","c"), ('a',"b","c"),('a',"b","c");
对比:
后者效率和速度要高一个数量级;主要是因为合并后日志量(MySQL的binlog和innodb的事务让日志)减少了,并且降低日志刷盘的数据量和频率,从而提高效率。
通过合并SQL语句,同时也能减少SQL语句解析的次数,减少网络传输的IO。