MySQL进阶——锁

news2024/11/20 1:33:34

目录

1全局锁—一致性数据备份

1.1全局锁介绍

1.2语法

1.3 一致性备份案例

1.4 全局锁特点

2表级锁

2.1表锁

2.1.1共享读锁

2.1.2独占写锁

2.2元数据锁

2.3元数据锁

MySQL中的锁,按照锁的粒度分,分为以下三类:

(1)全局锁:锁定数据库中的所有表。

(2)表级锁:每次操作锁住整张表。

(3)行级锁:每次操作锁住对应的行数据。

1全局锁—一致性数据备份

1.1全局锁介绍

全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将被阻塞。

其典型的使用场景是做全库的逻辑备份,对所有的表进行锁定,从而获取一致性视图,保证数据的完整性

对数据库进行进行逻辑备份之前,先对整个数据库加上全局锁,一旦加了全局锁之后,其他的DDL、 DML全部都处于阻塞状态,但是可以执行DQL语句,也就是处于只读状态,而数据备份就是查询操作。 那么数据在进行逻辑备份的过程中,数据库中的数据就是不会发生变化的,这样就保证了数据的一致性和完整性。

1.2语法

1.3 一致性备份案例

(这里试试在window上远程访问Linux系统中的数据库)

(1)先查到Linux系统中的IP地址

学习:

ip addr命令一共输出了4项:

1)ens33是物理网卡驱动程序创建的,

2)lo是内核启动时自己创建的环回网络接口

3)virbr0和virbr0-nic则是我们自己创建的veth peer虚拟网络接口。

我们可以将每个网络接口都视作一条管道,管道的一端连接到本机内核路由子系统,而另一端根据类型各有不同。物理网卡对应的网络接口另一端通向设备驱动程序; veth peer类型的接口另一端通向对方;tun类型设备的另一端通向用户应用程序。

另外,从上面的输出内容中还可以注意到的是:网络接口上并不是一定都有IP地址(本文提到的IP地址专指IPv4地址),比如virbr0和virbr0-nic后面都没有IP地址。IP地址还是属于主机的,而不是某个网络接口。

(2)Windows本地远程连接代码:mysql -h192.168.145.128 -uroot -p

开3个,模拟三个客户端:

(3)给一个客户端加上全局锁,相当于数据库实例192.168.145.128已经被锁住了,

加上全局锁:flush tables with read lock;

加上之后,所有客户端都只能读了,不能进行修改了。堵塞状态可以输入Ctrl+C退出当前。

(4)备份数据

mysqldump -h192.168.145.128 -uroot -p1234 itheima > D:/itheima.sql

注意是在Windows下的命令(exit退出到Windows命令行执行),而不是在mysql中;

要加入远程连接参数-h192.168.145.128,要访问的是远程的,而不是Windows上的;

最后没有;分号!!!

D盘中成功有备份文件,里面创建表插入数据的SQL语句都有。

(5)释放锁并进行修改操作。

1.4 全局锁特点

数据库中加全局锁,是一个比较重的操作,存在以下问题:

(1)如果在主库上备份,那么在备份期间都不能执行更新,业务基本上就得停摆。

(2)如果在从库上备份,那么在备份期间从库不能执行主库同步过来的二进制日志(binlog),会导致主从延迟

此外:在InnoDB引擎中,我们可以在备份时加上参数 --single-transaction 参数来完成不加锁的一致 性数据备份。

2表级锁

2.1表锁

对于表锁,分为两类:

表共享读锁(read lock)

表独占写锁(write lock)

语法:

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

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

2.1.1共享读锁

测试:

2.1.2独占写锁

测试:

结论:

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

写锁既会阻塞其他客户端的读,又会阻塞 其他客户端的写。

2.2元数据锁

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

这里的元数据,大家可以简单理解为就是一张表的表结构。 也就是说,某一张表涉及到未提交的事务时,是不能修改这张表的表结构的。在MySQL5.5中引入了MDL,当对一张表进行增删改查的时候,加MDL读锁(共享);当对表结构进行变更操作的时候,加MDL写锁(排他)。

常见的SQL操作时,所添加的元数据锁

演示:新建两个shell远程连接窗口,Ctrl+L清除命令。

(1)当执行SELECT、INSERT、UPDATE、DELETE等语句时,添加的是元数据共享锁(SHARED_READ / SHARED_WRITE),之间是兼容的。

(2)当执行alter语句时,添加的是元数据共享锁(EXCLUSIVE),会阻塞元数据排他锁,之间是互斥的。

只有当一个事务提交完之后,alter语句才能继续。

查看元数据锁的加锁情况:

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

2.3元数据锁

。。。。要开组会了

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

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

相关文章

DigitalOcean Droplet 云主机新增内置第五代 Xeon CPU 机型

DigitalOcean 近期宣布,在其高级 CPU 服务器(Premium CPU-Optimized Droplet)队列中引入英特尔第五代Xeon可扩展处理器(代号为 Emerald Rapids)。作为英特尔产品线中的最新一代用于数据中心工作负载的处理器&#xff0…

香港办公室顺利落地,量子之歌发布白皮书开启银发新篇章

6月25日,量子之歌香港办公室开业典礼暨《2023年中国中老年服务市场白皮书:银发经济,耀眼的黄金赛道》发布会于香港中环交易广场隆重开幕。 这一里程碑事件不仅彰显了量子之歌在银发经济领域的行业领军者风范,更凸显了其在专业服务…

【服务器部署】Jenkins配置前端工程自动化部署

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产…

秋招Java后端开发冲刺——非关系型数据库篇(Redis)

一、非关系型数据库 1. 主要针对的是键值、文档以及图形类型数据存储。 2. 特点: 特点说明灵活的数据模型支持多种数据模型(文档、键值、列族、图),无需预定义固定的表结构,能够处理各种类型的数据。高扩展性设计为水…

2024年6月26日 (周三) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键,实现一键唤起、一键隐藏的 Windows 工具,并且支持窗口动态绑定快捷键(无需设置自动实现)。 土豆录屏: 免费、无录制时长限制、无水印的录屏软件 《Granblue Fantasy Versus: Risi…

使用方法——注意事项及好处

public class MethodDemo01 {public static void main(String[] args) {// 目标:掌握定义方法的完整性,清楚使用方法的好处。// 需求:假如现在有很多程序员都要进行2个整数求和的操作。//1、李工。int rs sun(10,20);System.out.println(&q…

web前端——VUE

1.什么是框架? ①概述 框架结构就是基本功能,把很多基础功能已经实现了、封装了。在基础语言之上,对各种基础功能进行封装,方便开发者,提高开发效率 ②前端框架 javaScript是原生的 vue.js: 是一个js框架&…

LLM AI工具和Delphi名称的起源

LLM AI工具和Delphi名称的起源 使用ChatGPT,直接或通过微软工具,以及其他基于llm的引擎。我很欣赏他们提供好的总结和比较的能力,并且还编写了一些样板代码。与此同时,当你问一些重要的问题时,你会得到一些令人惊讶的好…

Java初识集合(后续不断补充)

第一次更新时间:2024.6.26 集合概述 Java中的集合就像一个容器,专门用来存储Java对象(实际上是对象的引用,但习惯称为对象),这些对象可以是任意的数据类型,并且长度可变。其中,这些…

GPOPS-II教程(3): 航天器最优控制问题

文章目录 问题描述GPOPS代码main functioncontinuous functionendpoint function完整代码代码仿真结果 最后 问题描述 例子出自论文 Direct solution of nonlinear optimal control problems using quasilinearization and Chebyshev polynomials(DOI:1…

Interview preparation--elasticSearch倒排索引原理

搜索引擎应该具备哪些要求 查询速度快 优秀的索引结构设计高效率的压缩算法快速的编码和解码速度 结果准确 ElasiticSearch 中7.0 版本之后默认使用BM25 评分算法ElasticSearch 中 7.0 版本之前使用 TP-IDF算法 倒排索引原理 当我们有如下列表数据信息,并且系统…

产品聚焦 | 澳鹏语音合成TTS,让AI无限贴近真人

如果问华语乐坛近期产量最高的歌手是谁,“AI 周杰伦”、“AI 孙燕姿”一定有姓名——歌迷们先用歌手的音色训练AI,再通过模型将其他歌曲转换成以歌手音色“翻唱”的歌曲。语音合成 (Text To Speech,TTS) 就是其背后的技术支持。 作为生成式AI的一大重要…

天润融通助力立升净水,AI技术打造全天候智能客服体系

水,作为生命之源,其纯净度直接关系到人类的健康与社会的可持续发展。 在工业化和城市化进程的不断推进中,我们面临着土壤、空气等环境因素对饮用水质量的挑战。近期的公共卫生事件更是将饮用水安全问题推到了公众视野的中心,引发…

Docker(九)-Docker运行redis6.0.8容器实例

1.宿主机新建目录存放redis.conf文件 目的:运行redis容器实例时使用自己的配置文件2.运行redis容器实例 docker run -d -p 6379:6379 --privilegedtrue -v 【宿主机配置文件目录】:/etc/redis/redis.conf -v 【宿主机数据目录】:/data --nameredis6.0.8 redis:6.0…

python tarfile解压失败怎么解决

问题原因 在使用tarfile模块解压一份Linux服务器上的打包文件时,出现了错误提示:IOError:[Errno 22] invalid mode (wb) or filename. 经过检查,发现是因为打包文件中有文件名存在“:”符号,而window下的…

[深度学习] 变分自编码器VAE

变分自编码器(Variational Autoencoders, VAEs)是一种生成模型 Tutorial on Variational Autoencoders,它结合了概率图模型和深度学习,通过学习数据的潜在表示来生成新的数据样本。VAEs在数据生成、异常检测、数据压缩等领域具有广…

15款免费在线PS替代软件,操作简单一学就会!

Adobe Photoshop(PS)一直是图像编辑行业的领导者之一,应用领域非常广泛,可用于图像处理、摄影后期、平面设计、UI 设计、地图插图等。然而,对于业余设计师或对地图修复需求较低的普通用户来说,由于安装复杂,版本不统一…

从零开始做题:月圆之夜

题目 解题 Daedric alphabet Daedric The Daedric alphabet is used in a series of computer games known as The Elder Scrolls produced by Bethdesa Softworks. It first appeared in TESL: Battlespire in about 1997 and is used to write English.The Daedric alphab…

Stable Diffusion【进阶篇】:真人漫改之迪士尼风格定制

大家好,我是极客菌 关于真人漫改是一个应用比较多的图片定制方向,本文以及后面的章节我们结合一些具体的大模型或者LORA来更深入的实践一下。 一. 迪士尼风格 在SD的大模型中,实现迪士尼或者皮卡斯风格的图片,首推 Disney Pix…

MySQL进阶-索引-使用规则-最左前缀法则和范围查询

文章目录 1、最左前缀法则2、启动mysql3、查询tb_user4、查看tb_user的索引5、执行计划 profession 软件工程 and age31 and status 06、执行计划 profession 软件工程 and age317、执行计划 profession 软件工程8、执行计划 age31 and status 09、执行计划 status 010、执行…