MySQL(一)共享锁 排它锁 意向锁 记录锁 间隙锁

1.共享锁和排它锁

共享锁(shared lock): 又叫读锁,一个事务获取了一行的共享锁后,其它事务可以再获取这一行的共享锁,不能获取这行的排它锁

加锁:   select  * from tb_student  where id = 1   lock  in share mode

释放:  commit  /  rollback

排它锁(excusive lock): 又叫写锁,一个事务获取了一行的排它锁后,其它事务不能再获取这一行的共享锁和排它锁

加锁:  select  *  from  tb_student where id = 1  for update

2.表锁和意向锁

innodb支持表锁和行锁
加表锁:        lock table [tableName] [read | write]
释放表锁:    unlock table

表锁和行锁存在冲突,比如:

1. transactionA获取了tableA中某一行的共享锁,其它事务就不能再修改这行数据了
2. trsactionB如果获取了tableA的表级排它锁,就可以对tableA的所有数据修改

这里 transactionB的表锁和transactionA的行锁就是冲突的

意向锁就是为了解决行锁和表锁的冲突,意向锁本身也是表级别的锁,事务在获取行锁前,必须先获取相应的意向锁,意向锁相当于一个标记&

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值