Mysql-锁

目录

前言

这里我重点了解了InnoDB的锁。主要分为表锁和行锁,行锁尤其重要。

对于表锁和行锁,都包括S锁(Share Locks共享锁)和X锁(Exclusive Locks 排他锁)

按数据的操作类型划分

名称 S锁 X锁
S锁 不互斥 互斥
X锁 互斥 互斥

可以看到如果一个事务中出现了排他锁X锁,那么不管之后出现了什么锁都会被阻塞,直到这个事务的排他锁被释放或事务超时回滚。

读锁

读锁顾名思义就是进行select操作时加的锁,这时候可以加S锁也可以加X锁。具体操作如下。但是不管加S锁还是X锁,都是只能读不能修改的。


select * from table_name for share; -- mysql8.0以上

select * from table_name lock in share mode; -- mysql5.7

select * from table_name for update;

写锁

写锁顾名思义就是进行增删改insert、delete、update操作的时候,可以加S锁和X锁。具体操作如下。


insert into table_name(r1, r2, r2) values(v1, v2, v2) for update;




按锁的粒度划分

表锁

  1. 表级别的共享锁和排他锁
  2. 意向锁
  3. 自增锁
  4. 元数据锁(MDL锁)

行锁

  1. 记录锁
  2. 间隙锁
  3. 临键锁
  4. 插入意向锁

页锁

按对待锁的态度

乐观锁

悲观锁

加锁方式

隐式锁

显式锁

全局锁

死锁

全部评论

相关推荐

见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务