MySQL锁机制

### 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

(0)
松果号松果号
上一篇 4小时前
下一篇 4小时前

推荐阅读

发表回复

登录后才能评论