MySQL-锁的划分(表锁、行锁、页锁)

从操作类型上来划分锁从操作类型上来划分:读锁/共享锁、写锁/排他锁从操作粒度上来划分锁从操作粒度上来划分:表锁、行锁表锁:表级别的共享锁、排他锁共享锁排他锁共享锁兼容不兼容排他锁不兼容不兼容意向锁:协调表锁与行锁的一种表级锁例如:事务A给id = 1的数据加了一条行锁,这时事务B想给该表加一个排他锁是不可以的,但是事务B又不知道该表中有没有行锁,故需要一条条的去遍历数据,看该表中的数据到底加没加行锁,这样做很耗时性能差。引入了人意向锁,当事务
摘要由CSDN通过智能技术生成

从操作类型上来划分锁

从操作类型上来划分:读锁/共享锁、写锁/排他锁

从操作粒度上来划分锁

从操作粒度上来划分:表锁、行锁

表锁:

  • 表级别的共享锁、排他锁

    共享锁 排他锁
    共享锁 兼容 不兼容
    排他锁 不兼容 不兼容
  • 意向锁:协调表锁与行锁的一种表级锁

    例如:事务A给id = 1的数据加了一条行锁,这时事务B想给该表加一个排他锁是不可以的,但是事务B又不知道该表中有没有行锁,故需要一条条的去遍历数据,看该表中的数据到底加没加行锁,这样做很耗时性能差。

    引入了人意向锁,当事务A给id = 1的数据加了一条行排他锁,这时数据库就会自动的创一个表级别的意向排他锁,这时事务B想给该表加一个排他锁,只需要看该表有没有意向排他锁即可,无需遍历表中的数据。

  • 元数据锁(MDL):当执行DDL操作时需要用元数据锁来保护

    例如:当一个事务在执行DML增删改时,另一个事务想要进行DDL(alter table、drop table)操作,这是不允许的,元数据锁会让该DDL操作处于阻塞状态。

行锁

  1. 记录锁:对表中的某条记录加

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值