阅读记录锁文档
This commit is contained in:
@@ -65,4 +65,19 @@ table level锁的兼容性如下所示:
|
||||
TABLE LOCK table `test`.`t` trx id 10080 lock mode IX
|
||||
```
|
||||
|
||||
### Record Lock
|
||||
记录锁是针对一条index record的锁。例如,`SELECT c1 FROM t WHERE c1 = 10 FOR UPDATE`语句会阻塞任何其他事务针对`c1 = 10`记录的插入、更新或删除。
|
||||
|
||||
records总是会针对index record加锁,即使当前table没有定义索引。对于table未定义索引的情况,innodb会创建一个隐藏的聚簇索引,并使用该聚簇索引来进行record lock。
|
||||
|
||||
事务相关record lock的信息,可以通过`SHOW ENGINE INNODB STATUS`来展示,其输出格式如下:
|
||||
```
|
||||
RECORD LOCKS space id 58 page no 3 n bits 72 index `PRIMARY` of table `test`.`t`
|
||||
trx id 10078 lock_mode X locks rec but not gap
|
||||
Record lock, heap no 2 PHYSICAL RECORD: n_fields 3; compact format; info bits 0
|
||||
0: len 4; hex 8000000a; asc ;;
|
||||
1: len 6; hex 00000000274f; asc 'O;;
|
||||
2: len 7; hex b60000019d0110; asc ;;
|
||||
```
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user