Mysql select for update 的加锁机制?

查看 10|回复 0
作者:hjcpnr   
如下表,age 上有唯一索引,隔离级别 RC
CREATE TABLE `test` (
`id` int NOT NULL AUTO_INCREMENT,
`age` char(10) NOT NULL,
`name` char(10) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_age` (`age`)
) ENGINE=InnoDB AUTO_INCREMENT=70032 DEFAULT CHARSET=utf8mb3
| id | age | name |
+-------+-------+--------+
| 70031 | 80009 | n79999 |
| 70030 | 80008 | n79998 |
| 70029 | 80007 | n79997 |
| 70028 | 80006 | n79996 |
| 70027 | 80005 | n79995 |
+-------+-------+--------+
事务 1:
select * from test where age = 80009 for update;
事务 2:
select * from test where age = 80008 for update;
事务 2 会阻塞,data_locks 显示事务 2 在等待 id=70031 的 record lock ,这是为什么?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部