欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

像这样的sql语句,mysql编译几次

程序员文章站 2022-04-08 22:02:55
...
insert into table values (null,'abc','123@qq.com');
insert into table values (null,'abc','123@qq.com');
insert into table values (null,'abc','123@qq.com');
这样执行3次,在mysql中编译3次

那这样的语句
insert into table values
(null,'abc','123@qq.com'),
(null,'abc','123@qq.com'),
(null,'abc','123@qq.com');
在mysql中编译几次?1次还是3次

回复内容:

insert into table values (null,'abc','123@qq.com');
insert into table values (null,'abc','123@qq.com');
insert into table values (null,'abc','123@qq.com');
这样执行3次,在mysql中编译3次

那这样的语句
insert into table values
(null,'abc','123@qq.com'),
(null,'abc','123@qq.com'),
(null,'abc','123@qq.com');
在mysql中编译几次?1次还是3次

内核没研究那么透,所以两者的具体的执行原理不是特别清楚

但是非常肯定的是批量插入效率高,SQL解析是按语句来的,所以你第一个例子是解析3条SQL语句,第二个例子是解析1条SQL语句

从IO消耗上来讲,每个SQL语句都要写一次binlog,所以批量insert只要写入一次,如果insert多的情况,性能差别会更大