加锁规则
- 查询过程中访问到的对象才会加锁,加锁的基本单位是next-key lock(前开后闭);
- 等值查询:
- 如果是唯一索引查询,next-key lock会退化成行锁;
- 如果不是唯一索引,需要访问到第一个不满足条件的值,此时next-key lock会退化成间隙锁。
- 范围查询:无论是否是唯一索引,范围查询都需要访问到不满足条件的第一个值为止。
CREATE TABLE `t` (`id` int(11) NOT NULL,`c` int(11) DEFAULT NULL,`d` int(11) DEFAULT NULL,PRIMARY KEY (`id`),KEY `c` (`c`)) ENGINE=InnoDB;insert into t values(0,0,0),(5,5,5),(10,10,10),(15,15,15),(20,20,20),(25,25,25);
