### 1锁的类型
#### 1.1行级锁
MySQL提供两种标准级别的行级锁
* 共享锁(SLock):允许事务读取一行数据
* 排他锁(XLock):允许事务删除或更新一行数据
排他锁与共享锁的兼容性
#### 1.2意图锁
InnoDB支持**多细粒度锁定**,允许在行级上的锁和表级上的锁同时存在
InnoDB还支持额外的锁方式,称之**意向锁**,是**表**级别的锁,用于在一个事务中揭示下一行将被请求的锁的类型
* 意向共享锁(ISLock):事务想获取表中某几行的共享锁
* 意向排他锁(IXLock):事务想获取表中某几行的排他锁
意图锁需遵循以下协议:
* 在事务获取某行的共享锁前,首先需获取IS锁或更强的锁
* 在事务获取某行的独占锁前,首先在表上获取IX锁
**IS**
**IX**
**S**
**X**
**IS**
兼容
兼容
兼容
不兼容
**IX**
兼容
兼容
不兼容
不兼容
**S**
兼容
不兼容
兼容
不兼容
**X**
不兼容
不兼容
不兼容
不兼容
松果号 作者:松果号原创文章,如若转载,请注明出处:https://www.6480i.com/archives/103418.html