【MySQL篇06】:并发控制-加锁与锁类型

文章目录

  • 基本封锁类型(排他型锁与共享型锁)
    • 1. 排他型锁(exclusive lock,简称 X 锁 / 写锁)
    • 2. 共享型锁(shared lock,简称 S 锁 / 读锁)

基本封锁类型(排他型锁与共享型锁)

1. 排他型锁(exclusive lock,简称 X 锁 / 写锁)

若事务 T 对数据对象 A 加上 X 锁:

  • 仅允许事务 T 对 A 执行读取和修改操作;
  • 其他事务在 T 释放 A 的锁前,无法对 A 加任何类型的锁(包括 X 锁、S 锁 );
  • 效果:保证其他事务在 T 释放锁前,不能读取或修改 A

2. 共享型锁(shared lock,简称 S 锁 / 读锁)

若事务 T 对数据对象 A 加上 S 锁:

  • 事务 T 可对 A 执行读取操作,但不能修改
  • 其他事务在 T 释放锁前,仅能对 A 加 S 锁(可并发读),无法加 X 锁(不能写);
  • 效果:保证其他事务在 T 释放锁前,可以读 A,但不能修改 A
锁类型 别称 事务 T 的操作权限 其他事务的锁限制(T 未释放时) 核心作用
排他型锁(X) 写锁 可读、可修改 无法加任何锁(X/S 都不行) 独占数据,避免并发修改冲突
共享型锁(S) 读锁 仅可读,不可修改 仅能加 S 锁(可并发读),不能加 X 锁 支持并发读,避免读时被修改

你可能感兴趣的:(MySQL篇,mysql,数据库,java,后端,面试)