MySQL之InnoDB存储引擎的锁

InnoDB存储引擎实现两种标准的行级锁:
  • 共享锁,允许事务读一行数据
  • 排他锁,允许事务删除或更新一行数据
锁兼容

如果一个事务T1已经获得行r的共享锁,

意向锁

此外,InnoDB 存储引擎支持多粒度(granular) 锁定,这种锁定允许事务在行级上的锁和表级上的锁同时存在。为了支持在不同粒度上进行加锁操作,InnoDB 存储引擎支持一种额外的锁方式,称之为意向锁(Intention Lock)。意向锁是将锁定的对象分为多个层次,意向锁意味着事务希望在更细粒度( fine granularity).上 进行加锁。
InnoDB存储引擎支持意向锁设计比较简练,其意向锁即为表级别的锁。设计目的主要是为了在一-个事务中揭示下一行将被请求的锁类型。其支持两种意向锁:
1)意向共享锁(IS Lock), 事务想要获得一-张表中某几行的共享锁
2)意向排他锁(IX Lock),事务想要获得- -张表中某几行的排他锁
由于InnoDB存储引擎支持的是行级别的锁,因此意向锁其实不会阻塞除全表扫以
外的任何请求。故表级意向锁与行级锁的兼容性如表6-4所示。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Csoap2/article/details/89285314