第70讲:MySQL数据库全局锁的核心概念

news2024/11/29 8:41:07

文章目录

    • 1.全局锁的概念
    • 2.使用全局锁的语法结构
    • 3.全局锁的基本使用

1.全局锁的概念

全局锁是对整个数据库实例添加一个锁,全局锁是面向整个数据库实例的,而不是单个数据库,添加锁之后这个实例就会处于只读状态,此时所有的数据库只能进行读的操作,对于更新、删除的操作将被阻塞。

全局锁的典型应用场景就是对全库进行逻辑上的备份,要求业务表之间关联的数据要保证一致性和完整性,此时就可以通过全局锁将所有的数据库锁住,避免备份过程中有数据产生,导致数据不一致。

我们一起来思考一个问题,为什么在全库逻辑的备份中,要加锁呢,备份是花时间的,对于用户不友好。

首先我们清楚一点,我们不是备份数据库,而是要在备份数据库的基础上,将业务表之间的逻辑依赖也都要进行备份,保证数据上的一致性。

首先来看一下不使用全局锁,业务表在备份中会出现的问题。

如下图所示,库中有三张业务表,备份时是一张表一张表进行备份的,先备份完tb_stock表,此时tb_order表有数据产生了,这两张表之间有业务关联,此时就会导致数据的不完整性。

image-20220618101646316

当我们给数据库添加一个全局锁之后,此时数据库中的数据只能读,不能写,用户根本不可能再产生数据了,此时数据备份就能保证业务逻辑的一致性。

全局锁的缺点

  • 如果数据库是主从集群,那么加了全局锁之后,程序就是摆停状态。
  • 加了全局锁,在备份期间,从库不能执行主库同步过来的binlog,导致主从延迟。

全局锁数据备份,应用的很少,一般都是普通备份,mysqldump命令的–single-transaction参数可以解决不加锁的数据一致性备份。

2.使用全局锁的语法结构

为数据库实例添加一个全局锁。

flush tables with read lock

释放全局锁锁。

unlock tables

3.全局锁的基本使用

开启全局锁。

flush tables with read lock;

此时数据库只能读不能写。

mysql> select * from db_1.xscjb;
+----+--------+------+------+------+
| xh | xm     | ywcj | sxcj | yycj |
+----+--------+------+------+------+
|  1 | 小明   |   45 |   75 |   93 |
|  2 | 小红   |   47 |   56 |   25 |
|  3 | 小兰   |   82 |   91 |   89 |
|  5 | 小李   |   88 |   77 |   66 |
|  6 | 小赵   |   88 |   77 |   66 |
|  7 | 小王   |   88 |   77 |   66 |
|  8 | 小黑   |  100 |   77 |   66 |
|  9 | 小江   |   88 |   77 |   66 |
+----+--------+------+------+------+
8 rows in set (0.00 sec)

mysql> update db_1.xscjb set ywcj = '100' where xh = 9 ;
ERROR 1223 (HY000): Can't execute the query because you have a conflicting read lock

释放全局锁。

mysql> unlock tables;

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

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

相关文章

跨足泛娱乐:TikTok如何重新定义娱乐产业?

在当今数字时代,社交媒体已成为人们生活中不可或缺的一部分。它们不仅是人们互相分享生活、观点和见解的平台,还在娱乐产业中发挥着越来越重要的作用。 TikTok,作为一款短视频分享应用,已经在全球范围内引起轰动,重新…

huggingface-cli: error: invalid choice: ‘download‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

AWTK 与 Qt 的异同点比较

相似之处: 跨平台支持: AWTK 和 Qt 都提供了跨平台的支持,可以在多种操作系统上进行开发和部署,包括 Windows、Linux、macOS 等。丰富的组件库: 两者都提供了丰富的图形界面组件库,能够满足各种应用程序的…

基于SSM的生鲜配送系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

img为空时不显示

当img标签的src为空时&#xff0c;会显示一个裂开的图片&#xff0c;不好看 <img src"" style"width:200px;height: 200px;" /> 解决办法&#xff1a; 1、图片为空时隐藏图片 <img src"" onerrorthis.style.display"none" …

MySQL最新2023年面试题及答案,汇总版(2)【MySQL最新2023年面试题及答案,汇总版-第三十二刊】

文章目录 MySQL最新2023年面试题及答案&#xff0c;汇总版(2)01、InnoDB的BTree 存储整行数据和主键的值的区别是什么&#xff1f;02、读写分离常见方案&#xff1f;03、为什么索引结构默认使用BTree&#xff0c;而不是Hash&#xff0c;二叉树&#xff0c;红黑树&#xff1f;04…

PyCharm+Miniconda3安装配置教程

PyCharm是Python著名的Python集成开发环境&#xff08;IDE&#xff09; conda有Miniconda和Anaconda&#xff0c;前者应该是类似最小化版本&#xff0c;后者可能是功能更为强大的版本&#xff0c;我们这里安装Miniconda 按官方文档的说法conda相当于pip与virtualenv的结合&am…

基于Kinect 动捕XR直播解决方案 - 技术实现篇

一 安装与部署 1. 安装与部署Kinect-v2设备: 安装硬件: Kinect-v2设备带线一台; Kinect-v2 原装适配器适配器组合件设备一台; Kinect-v2 USB 3.0 WIndows PC 一天&#xff0c;原主板支持USB3.0接口; Windows PC 系统 Win10( Win 10 Version 21H2更新, 基于x64系统), 特别…

聚观早报 |苹果iMac2028年将有3款;小米汽车明年发布

【聚观365】11月9日消息 苹果iMac2028年将有多款 小米汽车明年发布 何小鹏再谈AEB 友道智途助力智慧交通新基建 vivo X100系列四款配色公布 苹果iMac2028年将有多款 据外媒报道&#xff0c;苹果iMac此前虽曾有21.5英寸、24英寸、27英寸等版本&#xff0c;但他们目前在售的…

NOIP2015提高组第二轮day2 - T2:子串

题目链接 [NOIP2015 提高组 day2 第二题] 子串 题目描述 有两个仅包含小写英文字母的字符串 A A A 和 B B B。 现在要从字符串 A A A 中取出 k k k 个互不重叠的非空子串&#xff0c;然后把这 k k k 个子串按照其在字符串 A A A 中出现的顺序依次连接起来得到一个新的…

科技改变农业:合成数据农业中的应用

介绍 农业在我们的生活中起着至关重要的作用&#xff0c;它为我们提供了生存的食物。如今&#xff0c;它遇到了各种困难&#xff0c;例如气候变化的影响、缺乏工人以及全球流行病造成的中断。这些困难影响了耕作用水和土地的供应&#xff0c;而这些水和土地正变得越来越稀缺。…

Python基础教程之六:Python中的关键字

Python关键字是python编程语言的保留字。这些关键字不能用于其他目的。 Python中有35个关键字-下面列出了它们的用法。 KeywordDescriptionandA logical AND operator. Return True if both statements are True. x (5 > 3 and 5 < 10) print(x) # True orA logic…

率能SS6216-单通道直流有刷电机驱动芯片

产品描述&#xff1a; SS6216是一款单通道直流有刷驱动芯片&#xff1b;工作电压为 2.0V&#xff5e;7.2V&#xff0c;每个通道的负载电流可达1.4A;峰值输出电流1.6A&#xff1b;低待机电流 (typ. 0.1uA&#xff09;低导通电阻0.6ohm(采用SOP8/SOT23-6两种封装)满足产品小型化…

pytest + yaml 框架 -58.运行报告总结summary.json

前言 用例运行结束后&#xff0c;在本地生成summary.json 文件&#xff0c;总结运行结果。 v1.5.1版本更新内容&#xff1a; 1.解决参数化&#xff0c;中文在控制台输出问题 2.保存用例结果summary.json 保存用例结果summary.json 命令行执行用例 pytest运行结束&#xff0…

查找-树表的查找-平衡二叉树

目录 平衡二叉树得定义插入操作平衡二叉树的平衡调整方法查找效率分析 平衡二叉树得定义 平衡二叉树(Balanced Binary Tree),简称平衡树(AVL树)&#xff0c;平衡二叉树或者空树&#xff0c;或者是具有以下特征得二叉树排序是&#xff1a; 左子树与右子树得深度之差得绝对值不超…

柯桥英语培训,商务英语学习,常用口语

欢迎各位小伙伴来到 ——“每个单词我都认识&#xff0c;但我又不认识整个短语”的时候啦&#xff01; “dog”是“狗” “breakfast”是早餐 那“a dogs breakfast”是“狗的早餐”&#xff1f; 狗听了都摇头。 a dogs breakfast是一句英文俚语&#xff0c;指的是无序、混…

2010年09月15日 Go生态洞察:探索Go Playground的新颖之处

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

异地传输大文件最快且安全稳定的办法

无论是企业还是个人&#xff0c;都会有传输大文件的需求&#xff0c;特别是在异地时&#xff0c;工作中最典型的就是项目资料、合同文档、视频素材等都是有一定的及时性的&#xff0c;那么在传输过程中&#xff0c;没有好的传输方式会间接性的影响到整体工作的进行&#xff0c;…

假脱机技术

一、脱机技术 二、引入假脱机技术 1.相关概念抽象 2.总体结构 三、实现过程

撕开AEB的「遮羞布」

如果&#xff0c;以NOA为代表的高阶智驾&#xff0c;考量的更多是在车辆运动条件下&#xff0c;如何更好的规避障碍物&#xff0c;并实现平稳的驾乘体验&#xff1b;那么&#xff0c;以AEB代表的主动安全功能&#xff0c;则需要更多考量「安全」刹停。 根据此前公安部发布的公开…