MySQL中的行锁和表锁

对于MyISAMMEMORYMERGE这些存储引擎来说,它们支持表级锁,而且这些存储引擎并不支持事务,所以当我们为使用这些存储引擎的表加锁时,一般都是针对当前会话来说的。

InnoDB存储引擎中的锁

InnoDB存储引擎既支持表级锁、也支持行级锁,占用资源较少。有时仅仅需要锁住几条记录,如果使用表级锁,效果上相当于为表中的所有记录都加锁,所以性能比较差。行级锁粒度细,可以实现更精细的并发控制,但是占用资源较多。

1. InnoDB中的表级锁

ISIX锁是表级锁,它们的提出不仅仅为了在之后加表级锁的S锁和X锁时,可以加速判断表中的记录是否上锁,以避免用遍历的方式来查看表中有没有上锁的记录。

2. InnoDB中的行级锁
  • Record Lock:被称为正经记录锁,支队记录本身加锁。
  • Gap Lock:锁住记录前的间隙,防止别的事务向改间隙插入记录。
  • Next-Key Lock: Record LockGap Lock的结合体,既保护记录本身,页防止别的事务向该间隙插入新记录。
  • Insert Intention Lock:某个事务获取一条记录的该类型的锁后,不会阻止别的事务继续获取该记录上任何类型的锁。
  • 隐士锁:依靠记录的trx_id属性来保护不被别的事务改动该记录。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值