【MySQL】锁 —— 表级锁 —— 表锁

一、介绍

表级锁,每次操作锁住整张表。锁定粒度大,发生锁冲突的概率最高,并发度最低。应用在MyISAM、 InnoDB、BDB等存储引擎中,我们接下来所讲解的表级锁主要演示的是InnoDB引擎下的表级锁。

对于表级锁,主要分为以下三类:

  • 表锁:锁的就是整张表
  • 元数据锁(meta data lock,MDL)
  • 意向锁

二、表锁分类

对于表锁,分为两类:

  • 表共享读锁(read lock) ,也称为 读锁
  • 表独占写锁(write lock),也成为 写锁

三、语法

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

    当然我们也可以一次性执行多张表,read:加读锁;write:加写锁。

  • 释放锁:unlock tables / 客户端断开连接


四、特点

A. 读锁

image-20240720220456213

左侧为客户端一,对指定表加了读锁,客户端一显然是可以去读取这张表的数据的,但是客户端一并不能进行这张表的写入操作;不会影响右侧客户端二的读,但是会阻塞客户端二的写。


五、测试

读锁:它不会阻塞读,但是会阻塞其他客户端的写

image-20240720220522642


写锁:其他客户端是不能读的,也不能写;但是当前客户端既能读也能写。

image-20240720220538912

左侧为客户端一,对指定表加了写锁,会阻塞右侧客户端的读和写。

测试:

image-20240720220608142

结论: 读锁不会阻塞其他客户端的读,但是会阻塞写。写锁既会阻塞其他客户端的读,又会阻塞其他客户端的写。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值