小工具知识网

当前位置: 首页 > 行业知识 > MySQL的表级锁

行业知识

MySQL的表级锁

2026-11-01 03:00:48 来源:互联网转载

       个人主页:五敷有你      

 系列专栏:面经

⛺️稳中求进,晒太阳

表级锁

介绍

对于表锁,分为两类:

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

    语法

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

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

    特点:

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

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

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

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

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

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

    元数据锁(meta data lock,MDL)

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

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

    意向锁

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

上一篇:亚马逊服务器怎么看价格?

下一篇:天堂的服务器怎么进?