MySQL 锁

MySQL中最常见的锁有全局锁、表锁、行锁。


全局锁

全局锁用于锁住当前库中的所有实例,也就是说会将所有的表都锁住。一般用于做数据库备份的时候就需要添加全局锁,数据库备份的时候是一个表一个表备份,如果没有加锁的话在备份的时候会有其他的事务进行提交,从而造成数据不一致,加锁后能保证在备份的时候不会有其他事务提交数据。


如何添加一个全局锁呢?

通过以下命令添加一个全局锁

#设置全局锁
flush tables with read lock;

执行增删改操作,会发现当前锁冲突,无法操作

insert into user (username, password, phone) 
values ('Jack', '$2a$10$6ptTq3V9XfaJmFYwYT2W9ud377BUkEWk.whf.iQ.0sX5F.L497rAC', '12345678901');


执行读取操作

#读取userselect *from user;


可以发现,添加全局锁后,整个数据库都变成了只读状态,操作完别忘记释放全局锁。

#释放全局锁
unlock tables;

表级锁

表级锁可细分为表锁、元数据锁、意向锁

  • 表锁:表锁有读锁和写锁,读锁当前客户端可读不可写(报错),其他客户端可读不可写(阻塞,直到释放锁)。写锁只有当前客户端可读可写,其他客户端不可读不可写        
  • 元数据锁:元数据锁分为读锁和写锁,读锁之间是共享的,即多个事务之间能同时读取数据,而写锁是排他的,主要为了防止在写的过程中数据结构发生改变,写锁同一时间只能被一个事务获取
  • 意向锁:意向锁的主要目的是减少行锁和表锁之间的冲突。意向锁能够快速判断是否发生锁冲突从而无需逐行检查每一行数据。意向锁可细分为共享锁和排他锁,共享锁之间是兼容的多个事务可以同时拥有,而排他锁是互斥的只能有一个事务持有
    SELECTobject_schema,object_name,index_name,lock_type,lock_mode,lock_data
    FROMperformance_schema.data_locks;

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

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

相关文章

win10 c++ VsCode 配置PCL open3d并显示

win10 c VsCode配置PCL open3d并显示 一、效果图二、配置步骤2.1 安装vscode2.2 pcl-open3d配置2.3 vscode中设置 三、测试代码四、注意事项及后续 一、效果图 二、配置步骤 2.1 安装vscode vscode下载链接 下载中文插件、c相关插件 2.2 pcl-open3d配置 1)下载…

Python----计算机视觉处理(Opencv:图像颜色替换)

一、开运算 开运算就是对图像先进行腐蚀操作, 然后进行膨胀操作。开运算可以去除二值化图中的小的噪点,并分离相连的物体。 其主要目的就是消除那些小白点 在开运算组件中,有一个叫做kernel的参数,指的是核的大小,通常…

泰勒·斯威夫特(Taylor Swift)的音乐影响力与商业版图深度研究

泰勒斯威夫特的音乐影响力与商业版图深度研究 简介 泰勒斯威夫特(Taylor Swift)是当今流行音乐领域最具影响力的全球巨星之一。自少年时期出道以来,她在音乐风格、形象和商业战略上不断演变,从乡村音乐新人成长为引领流行文化的…

完全托管的DeepSeek-R1模型正式登陆Amazon Bedrock:安全部署与使用指南

文章目录 摘要一、核心优势:完全托管与企业级安全二、部署注意事项三、实践指南:从接入到调用四、支持区域与定价五、结语 摘要 DeepSeek-R1模型已在Amazon Bedrock平台正式上线,支持通过Bedrock Marketplace和自定义模型导入功能调用。 该模…

Matlab 汽车ABS实现模糊pid和pid控制

1、内容简介 Matlab 181-汽车ABS实现模糊pid和pid控制 可以交流、咨询、答疑 2、内容说明 略 实现汽车防抱死制动系统(ABS)的控制算法,通常涉及到传统的PID控制和模糊PID控制两种方法。下面将分别介绍这两种控制策略的基本概念以及如何在M…

Spring IOC(五个类注解)

controller、service、Repository、Component 、Configurationpackage com.java.ioc;import com.java.ioc.Controller.HelloController; import com.java.ioc.rep.UserRepository; import com.java.ioc.service.UserService; import org.springframework.boot.SpringApplicatio…

[Java实战]Spring Boot服务CPU 100%问题排查:从定位到解决

Spring Boot服务CPU 100%问题排查:从定位到解决 1. 引言 当Spring Boot服务出现CPU占用率100%时,系统性能会急剧下降,甚至导致服务不可用。本文将通过真实代码案例,详细讲解如何快速定位问题根源,并提供解决方案。无…

机器学习扫盲系列(2)- 深入浅出“反向传播”-1

系列文章目录 机器学习扫盲系列(1)- 序 机器学习扫盲系列(2)- 深入浅出“反向传播”-1 文章目录 前言一、神经网络的本质二、线性问题解析解的不可行性梯度下降与随机梯度下降链式法则 三、非线性问题激活函数 前言 反向传播(Ba…

LabVIEW 线性拟合

该 LabVIEW 程序实现了 线性拟合(Linear Fit),用于计算给定一组数据点的斜率(Slope)和截距(Intercept),并将结果可视化于 XY Graph 中。本案例适用于数据拟合、实验数据分析、传感器…

XSS漏洞靶场---(复现)

XSS漏洞靶场—(复现) 反射型 XSS 的特点是攻击者诱导用户点击包含恶意脚本的 URL,服务器接收到请求后将恶意脚本反射回响应页面,浏览器执行该脚本从而造成攻击,恶意脚本不会在服务器端存储。 Level 1(反射型XSS) 此漏…

优选算法系列(2.滑动窗口 _ 上)

目录 解法⼀(暴力求解)(不会超时,可以通过):一.长度最小的子数组(medium) 题目链接209. 长度最小的子数组 - 力扣(LeetCode) 解法: 代码&#…

ELK(Elasticsearch、Logstash、Kbana)安装及Spring应用

Elasticsearch安装及Spring应用 一、引言二、基本概念1.索引(Index)2.类型(Type)3.文档(Document)4.分片(Shard)5.副本(Replica) 二、ELK搭建1.创建挂载的文件…

Redis,从数据结构到集群的知识总结

Redis基础部分 2. 数据结构 redis底层使用C语言实现,这里主要分析底层数据结构 2.1 动态字符串(SDS) 由于C底层的字符串数组一旦遇到’\0’就会认为这个字符串数组已经结束,意味着无法存储二进制数据(如图片、音频等)&#xff…

【redis】Jedis 操作 Redis 基础指令(下)

列表操作 lpush/rpush 和 lpop/rpop 将一个或者多个元素从左/右侧放入(头/尾插)到 list 中 依次头插 从 list 左/右侧取出元素(即头/尾删) public static void test1(Jedis jedis) { jedis.flushAll(); long n jedis.lpush(…

基于消失点标定前视相机外参

1. 消失点 艺术家&工程师在纸上表现立体图时,常用一种透视法,这种方法源于人们的视觉经验:近大远小,且平行的直线都消失于无穷远处同一个点。就像我们观察两条平行的铁轨时会觉得他们相交于远处的一点,我们把这个点称为消失点。 图1 铁轨组成的消失点 2. 在标定中的应…

TypeScript接口 interface 高级用法完全解析

TypeScript接口 interface 高级用法完全解析 mindmaproot(TypeScript接口高级应用)基础强化可选属性只读属性函数类型高级类型索引签名继承与合并泛型约束设计模式策略模式工厂模式适配器模式工程实践声明合并类型守卫装饰器集成一、接口核心机制深度解析 1.1 类型兼容性原理 …

Vue3 Pinia $subscribe localStorage的用法 Store的组合式写法

Vue3 Pinia $subscribe 可以用来监视Stroe数据的变化 localStorage的用法 localStorage中只能存字符串,所有对象要选转成json字符串 定义store时,从localStorage中读取数据talkList可能是字符串也可能是空数组 Store的组合式写法 直接使用reactiv…

新版AndroidStudio / IDEA上传项目到Gitee

目录 1.Gitee创建仓库 2.填写仓库的信息 3.创建成功后复制仓库的地址 4.检查AndroidStudio是否配置Git 5.点击测试 6.之后Create Git Repository 7.添加到本地仓库 8.提交项目 9.添加上传仓库的地址 10.上传成功 11.去Gitee上刷新检查 1.Gitee创建仓库 2.填写仓库的…

用 Vue 3.5 TypeScript 重新开发3年前甘特图的核心组件

回顾 3年前曾经用 Vue 2.0 开发了一个甘特图组件,如今3年过去了,计划使用Vue 3.5 TypeScript 把组件重新开发,有机会的话再开发一个React版本。 关于之前的组件以前文章 Vue 2.0 甘特图组件 下面录屏是是 用 Vue 3.5 TypeScript 开发的目前…

C语言【数据结构】:时间复杂度和空间复杂度.详解

引言 详细介绍什么是时间复杂度和空间复杂度。 前言:为什么要学习时间复杂度和空间复杂度 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时…