MySQL锁的详细讲解(全局锁、表级锁、行级锁)

# 概述

# 全局锁

# 表级锁

表锁

元数据锁

假如有客户端1、客户端2,

  1. 客户端1,执行begin命令开启了事务
    1. 客户端1没有执行读写语句,这时,客户端执行查看元数据锁的命令,查看到没有加到元数据锁
    2. 当客户端1执行select读操作时,
      1. 这时,客户端2,执行查看元数据锁的命令,查看到有一个元数据锁(锁类型:SHARED_READ)
      2. 这时,客户端2,执行alter table对表进行变更操作,会被阻塞住(因为执行alter table所对应的EXCLUSIVE锁类型会与其它的MDL(SHARED_READ、SHARED_WRITE)都互斥)
      3. 客户端2,执行读、写操作时,都可以成功,因为SHARED_READ、SHARED_WRITE之间是兼容的
    1. 客户端1,执行 commit 提交事务时
      1. 这时,客户端2执行的alter就不会被阻塞住了

意向锁

# 行级锁

演示第一种情况

# 总结

# 面试题

# MySQL Update是行锁还是表锁?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值