mysql数据库之表级锁

news2024/11/17 12:51:45

表级锁,每次操作锁住整张表。锁定粒度大,发生所冲突的概率最高,并发度最低。应用在myisam、innodb、bdb等存储引擎中。

一、表级锁分类。

1、表锁

2、元数据锁(meta data lock,MDL)

3、意向锁

二、表锁。

分类

1、表共享读锁(read lock)

 释放前 

 释放后

 

2、表独占写锁(write lock)

释放前

 释放后

 语法

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

读锁,可以读,不可以写

写锁,本地客户端可以写可以读,其他客户端不能读不能写,释放后可以

 

2、释放锁:unlock tables 或者客户端断开连接。

三、元数据锁(meta data lock,MDL)。

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

 在mysql5.5中引入了MDL,当对一张表进行增删改查的时候,家MDL读锁(共享锁),当对表结构进行变更操作的时候,家MDL写锁(排他锁)。

                        

 对应SQL  锁类型  说明 
lock tables xxx read/writeshared_read_only/shared_no_read_write
select/select... lock in share modeshared_read与shared_read/shared_write兼容,与exclusive互斥
insert、update、delete、select... for updateshared_write与shared_read/shared_write兼容,与exclusive互斥
alter table ...与其他的MDL互斥

1、共享锁,可以读可以写

 

2、修改表结构,未提交

 3、提交后可更新表结构

4、查看元数据锁

select object_type,object_schema,object_name,lock_duration from performance_schema.metadata_locks;

 查询

只有执行增删改查的时候,才会有对应的元数据锁,alter table改表结构的时候阻塞,提交事务即可执行。

四、意向锁。

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

1、演示。

没有意向锁

 有意向锁

 2、分类。

意向共享锁(IS):由语句select ... lock in share mode添加。

意向排他锁(IX):由insert、update、delete、select ... for update添加。

3、兼容性。

意向共享锁(IS):与表锁共享锁(read)兼容,与表锁排他锁(write)互斥。

意向排他锁(IX):与表锁共享锁(read)和表锁排他锁(write)都互斥,意向锁之间不会互斥。

4、查看意向锁及行锁的加锁情况。

select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks;

5、演示。

为这一行加行锁,为表加意向锁,查询语句后加上lock in share mode,是为这一行加共享锁,为整张表家意向共享锁。

 IS和读锁兼容,和写锁互斥,提交后释放

 执行update语句,自动为这一行加行锁,为表加上意向排他锁

 

互斥,提交事务后即可释放

 主要解决innodb引擎中加的行锁和表锁的冲突问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/398842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

yum保留安装包

一. 用downloadonly下载 1.1 处理依赖关系自动下载到/tmp/pages目录,pages这个目录会自动创建 yum install --downloadonly --downloaddir/tmp/pages ceph-deploy注意,如果下载的包包含了任何没有满足的依赖关系,yum将会把所有的依赖关系包下…

微信小程序的代码由哪些结构组成?

小程序官方建议把所有小程序的页面,都存放在pages 目录中,以单独的文件夹存在,如图所示: 其中,每个页面由4 个基本文件组成,它们分别是:js文件(页面的脚本文件,存放页面的数据、事件…

Bean三种实例化方式的底层原理

Bean实例化的三种方式 1,使用类构造器实例化(无参构造函数)2,使用静态工厂方法实例化(简单工厂模式)3,使用实例工厂方法实例化(工厂方法模式) 基于以上的三种方式&…

时间轮来优化定时器

在raft协议中, 会初始化三个计时器是和选举有关的: voteTimer:这个timer负责定期的检查,如果当前的state的状态是候选者(STATE_CANDIDATE),那么就会发起选举 electionTimer:在一定时…

Photoshop如何安装ZXP扩展插件?

Photoshop如何安装ZXP扩展插件呢?有一些小伙伴不会安装,今天介绍两种安装ZXP扩展的方法,希望对能帮助到大家。方法一:手动安装方式1)把下载好的.zxp扩展名改为.zip,然后解压。Windows系统:C:\Us…

参考文献去哪里查找,参考文献标准格式是什么

1、参考文献类型: 普通图书[M]、期刊文章[J]、报纸文章[N]、论文集[C]、学位论 文[D]、报告[R]、标准[s]、专利[P]、数据库[DB]、计算机程序[CP]、电 子公告[EB]、联机网络[OL]、网上期刊[J/OL]、网上电子公告[EB/OL]、其他未 说明文献[z]。…

I.MX6ULL_Linux_驱动篇(28) 字符设备驱动

字符设备驱动简介 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、 IIC、 SPI,LCD 等等都是字符设备,这…

蓝牙耳机品牌哪个质量好?2023质量好的蓝牙耳机推荐

相较于有线耳机,蓝牙耳机凭借更方便地使用而受到不少人的喜爱,蓝牙耳机各种性能的发展也越来越先进。哪个品牌的蓝牙耳机质量好?针对这个问题,我来给大家推荐几款质量好的蓝牙耳机,一起来看看吧。 一、南卡小音舱蓝牙耳…

接口请求参数异常之@RequestParam

问题 具体问题如下: 正确的如下: 如上两图所示:我们的请求参数是pageNo和pageSize,但是却没有正确显示,则说明我们的接口存在了问题。 分析问题 参数为什么没有正确的显示每页显示条数和当前页数,而是我…

jmeter-定时器

记录下业务中常用的定时器概念以及使用流程,仅供自己学习。 定时器的作用域 1、定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是下面); 2、当执行一个sa…

Apache HTTP Server <2.4.56 mod_proxy 模块存在请求走私漏洞(CVE-2023-25690)

漏洞描述 Apache HTTP Server是一款Web服务器。 该项目受影响版本存在请求走私漏洞。由于intro.xml中存在RewriteRule配置不当,当Apache启用mod_proxy且配置如 RewriteRule “^/here/(.*)” " http://example.com:8080/elsewhere?$1"; http://example.…

Elasticsearch 核心技术(七):IK 中文分词器的安装、使用、自定义字典

❤️ 博客主页:水滴技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 🌸 订阅专栏:大数据核心技术从入门到精通 文章目录一、安装 IK 分词器方式一:自行下载并解压安装包方式二:…

【前端学习】D3:CSS进阶

文章目录前言系列文章目录1 CSS的三大特性1.1 层叠性1.2 继承性1.3 优先级(*)2 盒子模型2.1 看透网页布局的本质2.2 盒子模型(Box Model)的组成2.3 边框(border)2.3.1 普通边框2.3.2 表格的细线边框2.3.3 边…

【Hello Linux】命令行解释器

作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:使用进程的基础知识和进程控制知识做出一个简单的shell程序 命令行解释器介绍搭架子缓冲区获取命令如何从标准输入中获取字符串解析命令…

Python3 爬虫实战教程 ,网页审查元素【Python学习连续,请关注】

在讲解爬虫内容之前,我们需要先学习一项写爬虫的必备技能:审查元素(如果已掌握,可跳过此部分内容)。1、审查元素在浏览器的地址栏输入URL地址,在网页处右键单击,找到检查。(不同浏览器的叫法不同…

爬虫(三)selenium

文章目录1. Selenium 安装2. Selenium 基本功能2.1 初始化浏览器2.2 其他功能3. 查找元素3.1 八大定位方法3.2 查找相对元素3.3 键盘事件4. 元素方法5. JS执行运行环境: selenium4.7.2 1. Selenium 安装 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接…

成都欢蓬电商:抖音带话题春日好物节活动规则

抖音带话题“春日好物节”,投稿瓜分优质内容激励,快来投稿参与本次抖音活动! 一、活动玩法 活动时间:3月3日-3月16日 活动形式: 玩法说明: 若同一id同时参加获奖,则不重复激励; 因视频投流涉…

易基因:RRBS揭示晚年锻炼可以减缓骨骼肌表观遗传衰老(甲基化年龄)|新研究

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。2021年12月21日,美国阿肯色大学、德克萨斯大学和肯塔基大学的研究人员合作在《Aging Cell》杂志发表了题为“Late-life exercise mitigates skeletal muscle epigenetic aging”…

还是要学好数学啊

有一个无穷大的二维网格图,一开始所有格子都未染色。给你一个正整数 n ,表示你需要执行以下步骤 n 分钟:第一分钟,将任一格子染成蓝色。之后的每一分钟,将与蓝色格子相邻的 所有 未染色格子染成蓝色。下图分别是 1、2、…

每日一问-ChapGPT-20230308-关于技术与思考的问题

文章目录每日一问-ChapGPT系列起因每日一问-ChapGPT-20230308-关于技术与思考的问题matplotlib_venn 中 venn2函数调用时,subsets传入A list (or a tuple) containing two set objects,怎么理解plt.pie() 包含哪些参数,以及每个参数的意义mat…