当前位置:Gxlcms > 数据库问题 > MySQL InnoDB锁

MySQL InnoDB锁

时间:2021-07-01 10:21:17 帮助过:3人阅读

1. 行级锁:共享锁(S)和排他锁(X)

  共享锁:允许持锁事务读取一行,事务A持有S锁,事务B请求S锁时,会立即被赋予,若请求X锁,需等待释放S锁才可以拿;

  排他锁:允许持锁事务更新或删除一行,事务A持有X锁,事务B请求S、X锁时,需等待释放X锁才可以拿;

 

2. 表级锁:意向锁(I)和自增锁

  意向锁:表明一个事务稍后要获取表中某一行的行级锁,分为意向共享锁(IS)和意向排他锁(IX),事务A要想获取S锁,先必须有IS锁或更高级别的锁,一个事务要想获取X锁,必须先有IX锁;

  自增锁:表明事务插入自增列的时候需要的锁,一个事务正在插入记录,其他事务插入记录需要等待

 

3. 记录锁:锁定索引记录的锁

 

4. 间隙锁(gap):是索引记录间隙上的锁,或者是对第一个或者最后一个索引记录之前的间隙的锁定,对于唯一索引来说,不需要间隙锁,可以被设置关闭

 

5. 插入意向锁:插入一行数据之前的意向锁

  多个事务在相同的索引间隙插入记录时,如果不是插入间隙中相同的位置,就不冲突,无需相互等待

 

可参考:官网InnoDB锁

MySQL InnoDB锁

标签:关闭   get   需要   自增   意向锁   gap   ODB   级别   获取   

人气教程排行