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.mzph.cn/diannao/22737.shtml

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

相关文章

【wiki知识库】05.分类管理实现--前端Vue模块

📝个人主页:哈__ 期待您的关注 目录 一、🔥今日目标 二、🌏前端部分的改造 2.1 新增一个tool.ts 2.2 新增admin-categoty.vue 2.3 添加新的路由规则 2.4 添加the-welcome.vue 2.5 修改HomeView.vue 三、❗注意 一、&…

车来了冲刺上市:业绩波动明显,依赖广告业务,滴滴、阿里入股

近日,MetaLight Inc.(下称“元光科技”或“车来了”)向港交所递交招股说明书,中金公司为其独家保荐人。 据招股书介绍,元光科技专注于利用时序数据(按时间顺序排列的数据点)来发现及预测分析对…

docker 存储 网络 命令

文章目录 1 docker存储1.1 目录挂载2.1卷映射2.1.1卷映射和目录挂载的区别2.1.2卷映射的使用 2 docker网络2.1查看docker的默认网络2.2查看容器的IP2.3容器互通2.4自定义网络2.4.1 创建自定义网络2.4.2创建容器的时候加入到自定义的网络2.4.3使用域名进行容器之间的访问2.4.4re…

盛凌电子IPO终止:实控人蒋志坚曾和前妻黄新打官司,儿子已离职

保荐人撤销,致使公司IPO终止。 近日,深圳证券交易所披露的信息显示,深圳盛凌电子股份有限公司(下称“盛凌电子”)的保荐人申万宏源证券撤回上市申请文件。因此,深圳证券交易所决定终止对该公司首次公开发行…

Qt报错:libvlc开发的程序,出现Direct3D output全屏窗口

问题描述: 在qt中开发重播模块时,第一次在窗口正常播放,点击重播按钮后会弹出新的Direct3D output窗口播放视频 分析: 因为libvlc_media_player_set_hwnd 这个函数 设置了不存在的窗口句柄,导致vlc视频播放窗口没有嵌…

kubesz(一键安装k8s)

引言 Kubernetes(K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。kubeasz 是一个用于快速搭建 Kubernetes 高可用集群的项目,它基于 Ansible,通过提供一套简单、易用的配置,使得…

用易查分制作活动抽奖系统,支持随机分配中奖结果!

学校或企业在开展抽奖活动时,如何确保公平公正,随机挑选中奖人员呢? 易查分的预置数据分配功能就可以实现,并且支持提交信息后随机分配中奖结果,不受任何人为因素的影响。下面就来教大家如何制作吧。 📌使用…

ArcGIS for Vue3

二维&#xff1a; 1、创建vue项目 npm create vitelatest 2、安装ArcGIS JS API依赖包 npm install arcgis/core 3、引入ArcGIS API for JavaScript模块 <script setup> import "arcgis/core/assets/esri/themes/light/main.css"; import Map from arcgis…

HTML5+CSS3+JS小实例:网格图库

实例:网格图库 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0&…

EXCEL从图片链接获取图片

step1: 选中图片地址列 step2:开发工具→Visual Basic 文件→导入 导入我制作的脚本&#xff08;代码见文章末尾&#xff09; 点击excel的小图标回到表格界面。 点击【宏】 选中刚才导入的脚本&#xff0c;点执行&#xff0c;等待完成。 代码本体&#xff1a; Sub InsertPict…

端午档新片速递《谈判专家》领衔,每日影视作品推荐❗❗❗多部佳作待映

每日影视作品推荐一、新片速递《谈判专家》上映时间&#xff1a;2024年端午档预售情况&#xff1a;已开启预售&#xff0c;并有望成为该档期的票房冠军备注&#xff1a;据猫眼专业版数据&#xff0c;该片备受期待 《我才不要和你做朋友呢》上映时间&#xff1a;2024年端午档期预…

9. MySQL事务、字符集

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

Python用于存储和组织大型数据集的文件格式库之h5py使用详解

概要 在科学计算和数据分析中,大规模数据集的存储和管理是一个重要的问题。HDF5(Hierarchical Data Format version 5)是一种用于存储和组织大型数据集的文件格式。Python 的 h5py 库是一个用于与 HDF5 文件交互的接口,它结合了 HDF5 的强大功能和 Python 的易用性,使得处…

微信小游戏性能优化解决方案全新发布

小游戏凭借其简单易上手、玩法多样、互动性强的特点&#xff0c;迅速在市场中崭露头角。MMO、ARPG、卡牌等游戏类型也纷纷入局。玩家对启动时间长、发热、加载缓慢、闪退等问题也越来越敏感。 为了突破这些性能瓶颈&#xff0c;UWA全新发布了针对微信小游戏的性能优化解决方案…

clickhouse学习笔记(一)入门与安装

目录 一 、入门 简介 核心特性包括 1.1 列式存储 1.2 原生压缩 1.3 向量化执行引擎 1.4 DBMS 功能 1.5 分布式处理 1.6 高吞吐写入能力 1.7 实时分析 1.8 SQL支持 1.9 高度可扩展 1.10 数据分区与线程级并行 1.11 应用场景 1.12 不适用场景 二、ClickHouse单机版…

深度学习中torch.max函数的作用

文章目录 解释代码举例 解释 torch.max 是 PyTorch 中的一个函数&#xff0c;用于在张量中沿指定维度计算最大值。它有两种用法&#xff1a; ① 如果只提供一个输入张量&#xff0c;则返回该张量中的最大值和对应的索引。     ② 如果提供两个输入张量&#xff0c;则返回两…

最短路径——迪杰斯特拉与弗洛伊德算法

一.迪杰斯特拉算法 首先对于最短路径来说&#xff1a;从vi-vj的最短路径&#xff0c;不用非要经过所有的顶点&#xff0c;只需要找到路径最短的路径即可&#xff1b; 那么迪杰斯特拉的算法&#xff1a;其实也就与最小生成树的思想类似&#xff0c;找到较小的&#xff0c;然后…

本地文件复制到虚拟机VMWare报错 Thre was an error getting infomation about以及关于如何搭建linux虚拟机

解决方式 直接远程ssh连接&#xff0c;用ftp上传即可 关于如何搭建linux虚拟机系统 https://juejin.cn/post/7250009145915719740?searchId2024060409134616191B1350EC8E073921 需要寄快递的朋友&#xff0c;这个小程序发快递只要五块钱哦~

短剧APP开发,推动短剧市场的全新发展

近几年&#xff0c;短剧火爆出圈&#xff0c;迎来了爆发式增长态势&#xff0c;市场规模一跃达到了百亿元&#xff01;短剧节奏快、剧情爽、情节猎奇&#xff0c;极大地满足了用户的追剧需求&#xff0c;深受大众的喜爱。 短剧巨大的市场发展前景也衍生出了各种新的短剧发展赛…

【第三节】C/C++数据结构之栈与队列

目录 一、数据结构-栈 1.1 栈的定义 1.2 栈的 ADT (Abstract Data Type) 1.3 栈的顺序存储结构及实现 二、数据结构-队列 2.1 队列的定义 2.2 队列的 ADT 2.3 队列的顺序存储结构与实现 2.4 优先队列 2.5 各种队列异同点 一、数据结构-栈 1.1 栈的定义 栈(Stack)可…