** 📝个人主页:五敷有你 **
** 🔥系列专栏:面经**
⛺️稳中求进,晒太阳
表级锁
介绍
对于表锁,分为两类:
- 表共享读锁
- 表独占写锁
语法
加锁:lock tables 表名... read/write
释放锁:unlock tables /客户端断开。
特点:
1)读锁:不影响所有客户端的读,但会阻止所有客户端的写。
如图加了读锁后,进行操作。
结果显示,加了读锁不会影响所有客户端的读,但是会阻塞客户端的写。
2)写锁:会阻塞其他客户端的读,又会阻塞 其他客户端的写。
如图加了写锁,进行操作。
结果显示:加了写锁不会影响本客户端的写和读,但其他客户端无法读写。
元数据锁(meta data lock,MDL)
MDL加锁过程是系统自动控制,无需显式使用,在访问一张表的时候会自动加上。**MDL锁主要作用是维 护表元数据的数据一致性**,在表上有活动事务的时候,不可以对元数据进行写入操作。为了避免DML与 DDL冲突,保证读写的正确性。
这里的**元数据,大家可以简单理解为就是一张表的表结构**。 也就是说,某一张表涉及到未提交的事务 时,是不能够修改这张表的表结构的。
意向锁
**为了避免DML在执行时,加的行锁与表锁的冲突,在InnoDB中引入了意向锁,**使得表锁不用检查每行 数据是否加锁,使用意向锁来减少表锁的检查。
版权归原作者 五敷有你 所有, 如有侵权,请联系我们删除。