You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中使用INSERT VALUES语法插入多行是否为串行执行?

MySQL多行INSERT操作的执行方式

首先看你的表结构:

create table tmp
(
    id int auto_increment primary key,
    name varchar(20)
) ENGINE=InnoDB; 

以及你使用的多行插入语句:

insert into tmp(name) values('tom'), ('cat'), ('rat');

针对这个操作,它不是逐行串行执行的,具体说明如下:

  • 这条单条INSERT语句会被MySQL作为一个整体操作处理,InnoDB引擎会在同一个事务内完成所有行的插入(默认自动提交事务的情况下,该事务会在语句执行完成后自动提交)
  • 自增主键id的分配是一次性完成的,不会出现中间被其他事务抢占自增ID的情况(除非特意将innodb_autoinc_lock_mode设置为0)
  • 整个操作遵循事务原子性:要么所有行插入成功,要么全部回滚,不会出现部分插入成功的情况

如果是拆分成多条独立的INSERT语句(比如INSERT INTO tmp(name) VALUES('tom'); INSERT INTO tmp(name) VALUES('cat');),那才是逐语句串行执行,但单条多行INSERT是作为单一整体执行的。

内容的提问来源于stack exchange,提问作者Ryanqy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 01:57:01