mysql表级锁(表锁/元数据锁/意向锁)

文章目录

  • 表级锁的分类
    • 1、表锁(分类)
      • 1.表共享读锁(read lock)
      • 2.表独占写锁(write lock)
      • 3.语法:
    • 2、元数据锁(meta data lock )
    • 3、意向锁
      • 1.意向共享锁(IS):由语句 select ... lock in share mode添加
      • 2.意向排他锁(IX):由 inser、update、delete、select...for update添加


表级锁的分类

1、表锁(分类)

表锁是锁住整张表,通过不同的表锁设置,控制并发访问。某些引擎不支持行锁,需要通过表锁来控制并发。支持行锁的引擎,就不建议使用表锁了。

1.表共享读锁(read lock)

只能进行读操作,不能进行写操作

第一个session窗口,对表进行读锁的情况下,会有错误的提示

在这里插入图片描述

其他session窗口中进行更新操作的时候会被阻塞:
在这里插入图片描述

当unlock tables时,读锁被释放,阻塞被释放,


2.表独占写锁(write lock)

在这里插入图片描述
当进行写锁的情况下:
当前会话session可以正常进行写入,读取等操作
但是其他会话session将无法进行读取和写入操作等写锁unlock tables被释放的情况下,将恢复正常的读写操作;

3.语法:

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

2解锁:unlock tables /客户端断开

2、元数据锁(meta data lock )

元数据锁主要是面向DML和DDL之间的并发控制,如果对一张表做DML增删改查操作的同时,有一个线程在做DDL操作,不加控制的话,就会出现错误和异常。元数据锁不需要我们显式的加,系统默认会加。

元数据锁的原理:

1.当做DML操作时,会申请一个MDL读锁

2.当做DDL操作时,会申请一个MDL写锁

3.读锁之间不互斥,读写和写写之间都互斥

3、意向锁

nnoDB支持多种粒度锁定,允许行锁和表锁并存。为了使在多个粒度级别上的锁定变得切实可行,InnoDB实现了意图锁。
意向锁是表级锁,表示事务稍后对表中的行需要上哪种类型的锁(共享锁或排他锁)。有两种类型的意图锁

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

与表锁共享锁兼容,与表锁写入互斥

2.意向排他锁(IX):由 inser、update、delete、select…for update添加

与表锁共享锁及排它锁互斥,意向锁之间不会排斥

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用springboot+vue实现阿里云oss上传

一、前言 我们后端开发中,时常需要用到文件上传的功能,无非是保存到服务器本地或者如阿里云、七牛云这种云存储的方案。本篇介绍一种使用后台springboot结合前端vue实现阿里云oss上传的功能。 二、前端实现过程 前端实现一个通用的上传组件UploadFile…

探索魁北克:IT专业人士的移民新天地

在这个数字化飞速发展的时代,IT专业人士无疑是推动社会进步的关键力量。魁北克省,作为加拿大的科技与文化中心,正以其开放的姿态和优越的移民政策,吸引着全球IT精英的目光。今天,让我们一起探索魁北克省为IT专业人士量…

Vue.js 动画与过渡效果实战

title: Vue.js 动画与过渡效果实战 date: 2024/6/4 updated: 2024/6/4 description: 这篇文章介绍了如何在网页设计中使用过渡动画和组件效果,以及如何利用模式和列表展示信息。还提到了使用钩子实现组件间通信的方法。 categories: 前端开发 tags: 过渡动画组件…

【计算机毕业设计】谷物识别系统Python+人工智能深度学习+TensorFlow+卷积算法网络模型+图像识别

谷物识别系统,本系统使用Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经算法网络模型,通过对11种谷物图片数据集(‘大米’, ‘小米’, ‘燕麦’, ‘玉米渣’, ‘红豆’, ‘绿豆’, ‘花生仁’, ‘荞麦’, ‘黄豆’, …

nginx与busybox离线镜像安装包

目录 概述实践离线资源nginxbusybox加载上传harbor 概述 nginx与busybox离线镜像安装包制作。如有疑问,详细请参考 docker镜像的导入导出 实践 离线资源 如果懒得弄,请至此下载 nginx、busybox (2024-06-04相对今天是最新版本) nginx 先找一台装有 d…

vscode设置编辑器文件自动保存

步骤 1.打开vscode的设置 2.在搜索栏输入关键字“保存”; 在 Files: Auto Save 设置项,选择自动保存的模式

MySQL—多表查询—多表关系介绍

一、引言 提到查询,我们想到之前学习的单表查询(DQL语句)。而这一章节部分的博客我们将要去学习和了解多表查询。 对于多表查询,主要从以下7个方面进行学习。 (1)第一部分:介绍 1、多表关系 2、…

9. MySQL事务、字符集

文章目录 【 1. 事务 Transaction 】1.1 事务的基本原理1.2 MySQL 执行事务的语法和流程1.2.1 开始事务1.2.2 提交事务1.2.3 回滚(撤销)事务实例1:一致性实例2:原子性 【 2. 字符集 和 校对规则 】2.1 基本原理2.2 查看字符集查看…

MySQL—多表查询(概述、基本实操、分类)

一、引言 概述:指的是从多张表中查询数据。 二、实操 打开 DataGrip 进行尝试多表查询。 (1)表结构的准备以及数据的插入 分别是:员工表 emp 以及 部门表。员工表中字段 dept_id 是外键,关联部门表的主键 id。 em…

ARP欺骗的原理与详细步骤

ARP是什么: 我还记得在计算机网络课程当中,学过ARP协议,ARP是地址转换协议,是链路层的协议,是硬件与上层之间的接口,同时对上层提供服务。在局域网中主机与主机之间不能直接通过IP地址进行通信&#xff0c…

先进制造aps专题十一 国内软件/erp行业的现状及对aps行业的启示

看到一个帖子 中国软件行业几乎全军覆没 OSC开源社区 2024-06-03 15:58 广东 刚刚网上冲浪刷到的 网友锐评:都是客户关系型公司。 知名大 V 「Fenng」评论称: 这里所谓的软件行业公司如果立刻倒闭,才能够利好中国整个行业软件生态。有个网…

electron初学

最近有一个开发桌面端的业务,考虑到跨平台就使用了electron。 引用官网:Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows…

[线程与网络] 网络编程与通信原理(四):深入理解传输层UDP与TCP协议

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

WWDC 2024前瞻:苹果如何用AI技术重塑iOS 18和Siri

苹果下周的全球开发者大会有望成为这家 iPhone 制造商历史上的关键时刻。在 WWDC 上,这家库比蒂诺科技巨头将展示如何选择将人工智能技术集成到其设备和软件中,包括通过与 OpenAI 的历史性合作伙伴关系。随着重大事件的临近,有关 iOS 18 及其…

使用Rufus工具制作Ubuntu To Go——很详细

一、准备工作 准备工具: 1、下载Rufus(主角)软件 2、准备一个U盘或硬盘(小白128G足够,装Ubuntu系统) 3、下载Ubuntu系统镜像文件 1、下载软件Rufus 先来看一下官网介绍: Rufus 是一款格式化和创建 USB 启动盘的辅助工…

探索 Omost:创新的图像生成AI框架

文章目录 探索 Omost:创新的图像生成AI框架第一部分:背景第二部分:Omost是什么?第三部分:如何安装Omost?第四部分:结合具体场景使用第五部分:总结 探索 Omost:创新的图像…

大话设计模式学习笔记

目录 工厂模式策略模式备忘录模式(快照模式)代理模式单例模式迭代器模式访问者模式观察者模式解释器模式命令模式模板方法模式桥接模式适配器模式外观模式享元模式原型模式责任链模式中介者模式装饰模式状态模式 工厂模式 策略模式 核心:封装…

神经网络 | 深度学习背后的数学

神经网分析 机器学习处理的是数据,通过学习输入的数据,从而建立模型,以便预测新的数据的输出 按照类型可以进行如下分类 监督分类 非监督分类 强化学习 神经元 生物学中,人的大脑是由多个神经元互相连接形成网络而构成的。也…

处理无法拉取GitHub库的解决方案

提交和拉取github上的库总是失败,这里记录一下如何使用代理解决。 首先找到端口,记住它的端口 然后使用git命令 # HTTP/HTTPS 协议 git config ––global http.url.proxy http://127.0.0.1:port # 以 Github 为例 git config ––global http.https:/…

四.再谈协议_网络计算器

序言 在之前章节中,我们认识了一些网络的接口,并简单体验了一下网络编程,成功实现了字符串数据的收发,模拟实现了最基本的一个多人聊天室,但是网络编程就仅仅局限于此吗?那还远远不够! 最基本的一点在于&…