当前位置: 首页 > news >正文

Mysql 锁

目录

0 课程视频

1 概述

1.1 多用户 并发访问 -> 为了数据一致性(多用户)

1.2 全局锁 数据库所有表

1.3 表级锁 每次操作 锁整张表

1.4 行级锁 每次操作 锁对应行 

2 全局锁 ->锁后只读 -> 全库逻辑备份

2.1 阻塞DML /DDL 可DQL读

2.2 语法

2.2.1 加锁 flush tables with read lock ;

2.2.2 解锁 unlock tables ;

2.3 示例演示

2.3.1 全局锁备份 -> mysqldump -> cmd终端中执行

2.3.2 快照备份 不加锁 mysqldump --single

3 表级锁 ->InnoDB的 -> 锁锁兼容性

3.1 语法

3.1.1 加锁 locktables 表名 read/write; -> 其他用户 对应阻塞

3.1.2 解锁 unlock tables; ->用户解锁 ->断开客户端连接 

3.2 表共享读锁 -> 任何用户 让读 不让写

3.3 表独占写锁 -> 自己可读可写 别人读写阻塞

3.4 元数据锁 ->表结构锁

3.4.0 课程视频

3.4.1 系统自动控制

3.4.2 表有事务未提交(增删改查) ->不可修改表结构(字段增删改)

3.4.3 表结构说的类型表格说明 -> 锁与锁之间是否兼容

3.5 意向锁 -> 表锁前要检查是否有行锁 -> 提高检查效率

3.5.1 意向共享锁 -> 不兼容写锁

3.5.2 意向排他锁 -> 兼容意向锁

3.5.3 兼容性 -> 意向共享不容写 意向排他不排意向

3.5.4 查看意向锁及行锁 加锁情况

3.6 示例演示

3.6.1 系统自动加 意向共享锁

 3.6.2 系统自动加 意向排他锁 -> 意向排他 不排意向

4 行级锁 -> InnoDB引擎

4.1 结构原理 -> B+TREE ->叶子节点是id+row

4.2 行锁 -> 防止其他客户端同时 update / delete

4.2.1 共享锁 S

4.2.2 排他锁 X

4.2.3 行锁列表展示

4.3 间隙锁 -> 防止幻读 -> 锁住 叶子节点与节点间的间隙 ->防止insert

4.3.1 结构图

4.3.2 示例演示 -> 客户端一 自动加间隙锁 -> 防止客户端二 insert -> 防止幻读

4.4.3 非唯一索引 -> 把可能的范围都加锁 -> 间隙锁

4.4 临键锁 -> 行锁间隙锁的组合 -> 指 被锁索引和之前索引之间

4.4.1 总之就是 行锁及行锁与前索引 间隙的锁 -> 锁范围

 4.5 总结 ->间隙锁只锁 后间隙 ->临键锁 锁行 锁之前间隙


0 课程视频

https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=121&spm_id_from=pageDriver&vd_source=ff8b7f852278821525f11666b36f180a

1 概述

1.1 多用户 并发访问 -> 为了数据一致性(多用户)

1.2 全局锁 数据库所有表

1.3 表级锁 每次操作 锁整张表

1.4 行级锁 每次操作 锁对应行 

2 全局锁 ->锁后只读 -> 全库逻辑备份

2.1 阻塞DML /DDL 可DQL读

2.2 语法

2.2.1 加锁 flush tables with read lock ;

2.2.2 解锁 unlock tables ;

2.3 示例演示

2.3.1 全局锁备份 -> mysqldump -> cmd终端中执行

2.3.2 快照备份 不加锁 mysqldump --single

mysqldump --single-transaction -uroot -p密码 库名 > 备份地址

3 表级锁 ->InnoDB的 -> 锁锁兼容性

3.1 语法

3.1.1 加锁 locktables 表名 read/write; -> 其他用户 对应阻塞

3.1.2 解锁 unlock tables; ->用户解锁 ->断开客户端连接 

3.2 表共享读锁 -> 任何用户 让读 不让写

3.3 表独占写锁 -> 自己可读可写 别人读写阻塞

3.4 元数据锁 ->表结构锁

3.4.0 课程视频

https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=125&spm_id_from=pageDriver&vd_source=ff8b7f852278821525f11666b36f180a

3.4.1 系统自动控制

3.4.2 表有事务未提交(增删改查) ->不可修改表结构(字段增删改)

3.4.3 表结构说的类型表格说明 -> 锁与锁之间是否兼容

 ps: share_write 插入 更新 删除 操作可以所有客户端可以改表结构?

3.5 意向锁 -> 表锁前要检查是否有行锁 -> 提高检查效率

3.5.1 意向共享锁 -> 不兼容写锁

3.5.2 意向排他锁 -> 兼容意向锁

3.5.3 兼容性 -> 意向共享不容写 意向排他不排意向

3.5.4 查看意向锁及行锁 加锁情况

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

3.6 示例演示

3.6.1 系统自动加 意向共享锁

 3.6.2 系统自动加 意向排他锁 -> 意向排他 不排意向

4 行级锁 -> InnoDB引擎

4.1 结构原理 -> B+TREE ->叶子节点是id+row

4.2 行锁 -> 防止其他客户端同时 update / delete

4.2.1 共享锁 S

4.2.2 排他锁 X

4.2.3 行锁列表展示

 

4.3 间隙锁 -> 防止幻读 -> 锁住 叶子节点与节点间的间隙 ->防止insert

4.3.1 结构图

4.3.2 示例演示 -> 客户端一 自动加间隙锁 -> 防止客户端二 insert -> 防止幻读

4.4.3 非唯一索引 -> 把可能的范围都加锁 -> 间隙锁

4.4 临键锁 -> 行锁间隙锁的组合 -> 指 被锁索引和之前索引之间

4.4.1 总之就是 行锁及行锁与前索引 间隙的锁 -> 锁范围

 4.5 总结 ->间隙锁只锁 后间隙 ->临键锁 锁行 锁之前间隙

相关文章:

Mysql 锁

目录 0 课程视频 1 概述 1.1 多用户 并发访问 -> 为了数据一致性(多用户) 1.2 全局锁 数据库所有表 1.3 表级锁 每次操作 锁整张表 1.4 行级锁 每次操作 锁对应行 2 全局锁 ->锁后只读 -> 全库逻辑备份 2.1 阻塞DML /DDL 可DQL读 2.2 语法 2.2.1 加锁 flush…...

基于ssm的论坛系统的设计与实现【附源码】

基于ssm的论坛系统的设计与实现 摘 要 早期的网络论坛系统已经诞生一段时间,随着互联网技术的发展,它已经从最初的简单电子公告板系统变成了一种丰富的论坛系统社区模型。人们通过论坛系统进行信息的获取、发布和交流已经成为一种普遍的社交方式&#x…...

Vue中的事件修饰符

Vue中的事件修饰符: 1.prevent: 阻止默认事件 (常用) : 2.stop: 阻止事件冒泡 (常用) : 3.once: 事件只触发一次(常用) : 4.capture:使用事件的捕获模式: 5.self: 只有event.target是当前操作的元素是才触发事件; 6.passive:事件的默认行为立即执行,无需等待事件回调…...

如何保证Redis和数据库的一致性

关注我,升职加薪就是你! 当我们对数据进行修改的时候,到底是先删缓存,还是先写数据库? 1、如果先删缓存,再写数据库:在高并发场景下,当第一个线程删除了缓存,还没来得及写…...

Ubantu docker学习笔记(八)私有仓库

文章目录 一、建立HTTPS链接1.在仓库服务器上获取TLS证书1.1 生成证书颁发机构证书1.2 生成服务器证书1.3 利用证书运行仓库容器 2.让私有仓库支持HTTPS3.客户端端配置 二、基本身份验证三、对外隐藏仓库服务器3.1 在服务器端3.2 在客户端进行 四、仓库可视化 在前面的学习中&a…...

【五一创作】网络协议与攻击模拟-01-wireshark使用-捕获过滤器

协议 TCP/IP协议簇 网络接口层(没有特定的协议)PPPOE 物理层 数据链路层 网络层:IP (v4/v6) ARP (地址解析协议) RARP ICMP (Internet控制报文协议) IGMP 传输层:TCP(传输控制协议) UDP(用户数据报协议) 应用层:都是基于传输层协议的端口,总共端口0~65535 0~1023 HTTP—t…...

网络-IP地址(嵌入式学习)

IP地址 基本概念IPv4 五类:A B C D E特殊地址子网掩码子网号概念IPv6优势举个栗子 基本概念 IP地址是Internet中主机的标识 IP地址(Internet Protocol Address 互联网国际地址)是一种在Internet上的给主机编址的方式,它主要是为…...

一文介绍Linux EAS

能量感知调度(Energy Aware Scheduling,简称EAS)是目前Android手机中Linux线程调度器的基础功能,它使调度器能预测其决策对CPU能耗的影响。依靠CPU的能量模型(Energy Model,简称EM),…...

【五一创作】【Midjourney】Midjourney 连续性人物创作 ① ( 通过垫图方式生成类似图像 )

文章目录 一、Midjourney 生成图像二、通过垫图方式生成类似图像 一、Midjourney 生成图像 Midjourney 可以生成高质量的图像 , 但是 生成过程有很大的随机性 , 输入同样的提示词指令 , 其输出结果也存在很大的不同 ; 如果要 生成稳定的人物角色 , 场景 , 描述连贯的内容 , 这…...

牛客刷题错题记录【03】

链接:https://www.nowcoder.com/questionTerminal/8242fbf4b3a241219989b3e1d0ee82db 来源:牛客网 下列关于Vue和React的描述错误的是( Vue进行数据拦截/代理,对数据更敏感,数据驱动视图自更新,而React需…...

maven-gpg-plugin gpg禁用交互式输入密码 免密码输入 设置默认密码 关闭pinentry-qt输入 passphrase

一、问题描述 在使用maven-gpg-plugin打包jar时,默认情况下,每次都会弹出对话框要你输入密码: 这就有点烦,有啥办法可以设置默认方法没?网上找了一圈,通过搜索关键词“passphrase”,找到了一些教程&#x…...

急需国产化替代的重要的工程软件有哪些?

急需国产化替代的重要的工程软件有哪些? 软件一:AutoCAD等领域常用设计软件 AutoCAD由Autodesk公司开发的工程辅助设计软件,目前是设计领域 最重要的工程软件。在高端3D的CAD领域,国产软件几乎全军覆没,在中 低端还有…...

计算机组成原理 4.2.1存储芯片连接

连接原理 主存储器 通过数据总线、地址总线和控制总线和CPU相连数据总线的位数正比于数据传输率地址总线的位数决定可寻址的最大地址空间控制总线(读/写)指出总线周期的类型和本次输入/输出完成的时刻 但是实际中存储芯片往往很小难以满足地址和数据的位数需求,此…...

这份【互联网项目全流程表】,实在是泰裤辣!!!

互联网行业是一个快速变化的行业,作为半个互联网人。太明白用户和环境每天都在不停地变化是什么感受了。 ​从项目开始到项目结束,要经历立项、计划、执行、结项,项目一周一个,一周一个。(**的)为了省时间…...

JAVA医院管理云HIS统计报表子系统、系统管理字系统功能实现

一、统计报表子系统 统计报表子系统功能模块:包括门诊收入汇总、住院收入汇总、收费统计报表、收费明细报表、 缴款日报、门诊收费汇总、住院科室日志、住院结算汇总、医疗项目统计、检查项目统计、 检验项目统计、月末收支汇总、药品进销存统计。 (1…...

5.Java中抽象类和接口

抽象类与接口 相同不同先从抽象类说起再从接口说起 相同 1.两者都不能实例化,因为他们都不全。(例如可以实例化一个苹果,但是不能实例化水果) 2.一个类可以实现多个接口,但是只能继承一个抽象类 3.如果这个类实现了接…...

中国平安将在2023年出现转机,复苏才刚刚开始

来源:猛兽财经 作者:猛兽财经 在解封后股价出现短暂反弹之后,由于市场担忧中国平安(02318)人寿保险部门新业务NBV(用于衡量寿险公司新业务价值的一个重要指标,当一家保险公司的NBV指标越高,那么说明每新增…...

CUDA编程(六):代码分析与调试

CUDA编程(六):代码分析与调试 代码分析与调试方法使用printf打印变量信息使用CUDA的错误检查功能使用CUDA-GDB进行调试使用Nsight进行调试使用nvprof / nvvp工具 参考文献 代码分析与调试方法 CUDA代码的运行时可能会遇到内存溢出、内存非法…...

身份鉴别解读与技术实现分析(1)

6.1.4.1 身份鉴别 本项要求包括: a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换; b) 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施 在等级保护体系中,级别越高…...

为什么说7.38万的比亚迪海鸥比仰望更重要

出品 | 何玺 排版 | 叶媛 售价7.38万元起步、速度却能上130迈。注意看,这就是A0级轿车中的“新皇”—比亚迪海鸥。 出乎车圈事前的意料,海鸥这款A0级车型,在上海车展里获得的人气和追捧并不逊色于百万豪车仰望。 01 比亚迪海鸥&#xff0…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

三体问题详解

从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...