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&…

C++中的Template常见用法

目录 摘要 函数模板 基本用法 重载与特化 类模板 基本用法 模板特化&#xff08;Specialization&#xff09;与偏特化&#xff08;Partial Specialization&#xff09; 别名模板&#xff08;Alias Templates&#xff09; 基本用法 变量模板&#xff08;Variable Temp…

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 查看字符集查看…

通过SDKMan来安装各种版本的JDK

准备工作&#xff1a; 1. 打开命令行工具&#xff1a;首先&#xff0c;你需要打开电脑上的命令行工具。在Windows上是“命令提示符”或“PowerShell”&#xff0c;Mac或Linux上是“终端”。 安装SDKMan&#xff1a; 1. 安装SDKMan&#xff1a;在命令行中输入以下命令并按…

亚马逊 AWS 视频转码功能、AWS Elemental MediaConvert 中创建和管理转码作业

上传的视频需要转码成不同的编码, 可以直接在 AWS Elemental MediaConvert 中创建和管理转码作业 AWS Elemental MediaConvert 中创建和管理转码作业 /*** 视频转码* return bool* author wzb* data 2024/5/30*/function videoTranscode(&$data){$fileId $data[id] ?? …

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单机版…

【C++PCL】点云处理KD-ICP配准

作者:迅卓科技 简介:本人从事过多项点云项目,并且负责的项目均已得到好评! 公众号:迅卓科技,一个可以让您可以学习点云的好地方 重点:每个模块都有参数如何调试的讲解,即调试某个参数对结果的影响是什么,大家有问题可以评论哈,如果文章有错误的地方,欢迎来指出错误的…