MySQL 插入记录,主键索引冲突加什么锁?
这一期开始进入锁的实战篇,结合原理分析各种场景的加锁情况。 >作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 > >爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 1. 准备工作 创建测试表: CREATE TABLE `t1` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `i1` int DEFAULT '0', PRIMARY KEY (`id`) USING BTREE, KEY `idx_i1` (`i1`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3; 插入测试数据: INSERT INTO `t1` (`id`, `i1`) VALUES (10, 101), (20, 201), (30, 301), (40, 401); 2. 加锁情况 t1 表中已经有一条 <id = 10> 的记录,我们执行以下 insert 语句,再插入一条 <id = 10> 的记录...