0


MySQL的表级锁

** 📝个人主页:五敷有你 **

** 🔥系列专栏:面经**

⛺️稳中求进,晒太阳

表级锁

介绍

对于表锁,分为两类:

  • 表共享读锁
  • 表独占写锁

语法

  1. 加锁:lock tables 表名... read/write

  2. 释放锁:unlock tables /客户端断开。

特点:

1)读锁:不影响所有客户端的读,但会阻止所有客户端的写。

如图加了读锁后,进行操作。

结果显示,加了读锁不会影响所有客户端的读,但是会阻塞客户端的写。

2)写锁:会阻塞其他客户端的读,又会阻塞 其他客户端的写。

如图加了写锁,进行操作。

结果显示:加了写锁不会影响本客户端的写和读,但其他客户端无法读写。

元数据锁(meta data lock,MDL)

    MDL加锁过程是系统自动控制,无需显式使用,在访问一张表的时候会自动加上。**MDL锁主要作用是维 护表元数据的数据一致性**,在表上有活动事务的时候,不可以对元数据进行写入操作。为了避免DML与 DDL冲突,保证读写的正确性。

    这里的**元数据,大家可以简单理解为就是一张表的表结构**。 也就是说,某一张表涉及到未提交的事务 时,是不能够修改这张表的表结构的。

意向锁

    **为了避免DML在执行时,加的行锁与表锁的冲突,在InnoDB中引入了意向锁,**使得表锁不用检查每行 数据是否加锁,使用意向锁来减少表锁的检查。
标签: mysql 数据库

本文转载自: https://blog.csdn.net/m0_62645012/article/details/138625782
版权归原作者 五敷有你 所有, 如有侵权,请联系我们删除。

“MySQL的表级锁”的评论:

还没有评论