mysql 锁的知识点简述

1 . mysql 全局锁

mysql 全局锁主要是针对整个数据库的锁,最常用的全局锁是读锁与写锁

读锁 (共享锁)

1.1 读锁 (共享锁) : 他阻止其他用户更新数据,但允许他们读取数据,在你需要的时间内,保持数据的一致性

写锁 (排它锁)

1.2 写锁 (排它锁) : 它阻止其他用户读取和更新数据,在你需要修改一些大量数据,并且不希望其他的用户在这段时间内干扰时很有用

例如 : 数据库 , 全库备份,全库导出

2 . 表锁

表级锁,是mysql 中最基本的锁策略,是mysql最早采用的所策略, 表级锁的特点是开销小,枷锁快,不会出现死锁, 锁定粒度大,发生锁冲突的概率最高,并发度最低

2.1 表共享读锁(表读锁) (Table Read Lock)

又称为表读锁,允许一个事务锁定的表进行读取操作,不允许其他事务对其写操作,但是可以进行读操作,读锁之间是不会相互阻塞的

2.2 表独占写锁(表写锁)(Table Write Lock)

又称为表写锁,允许一个事务锁定的表进行读取和写入(更新)操作,但是其他任何事物都不能对该表进行任何操作,必须等待表写锁结束,写锁,会阻塞其他所有锁,包括读锁和写锁

2.3 使用场景

1 : 读密集型应用

2 : 写操作不频繁的应用

3 : 数据量不大的,业务简单的应用

4 : 全表更新或者删除

2.4 那些命令会触发表所

1 : Alter Table (更改表结构,修改表,改变列的类型)

2 : drop table(删除表) 和 truncate table (删除表数据)

3 : Lock tables : 显性的为一个表或者多个表,加上读锁与表所

样例 : lock tables t1 write ,t2 read;

4 : 全局扫描或大范围扫描

5 : Flush tables with read lock(FTWRL) (全表加锁,会话期间不能修改)

注意: InnoDB 存储引擎主要使用行级锁

,

2.5 表锁风险点

1 : 性能下降,(并发情况下,大量请求阻塞,性能下降)

2 : 并发性能差 ( 一个线程获取读锁,其他线程读写操作都会被阻塞)

3 : 可能导致锁等待和超时 (并发环境,表锁粒度大,很多线程等待,等待时间过长, 导致锁超时)

4 : 写操作影响大 ( 大量的写操作或者更新操作,占有锁,阻塞所有读写操作,一直等到结束 )

5 : 死锁的可能性(表所本身不会出现死锁,如果多表操作,没有按照一个顺序获得锁,可能会导致死锁 )

3 行锁

行级锁粒度小,并发处理高,(更好的并发性,和更少的锁冲突,需要更多的内存和CPU资源,有InnoDB存储引擎提供,InnoDB支持两种类型的行级锁 1,共享锁(S锁),2 排他锁(X锁))

3.1 共享锁(S锁)

共享锁 也称 读锁, 一个事务读取一行, 一行数据被共享锁,锁定, 其他事务,只能读操作,不能写操作,

3.2 排它锁(X锁)

排它锁又称写锁 , 他允许一个事务读写操作, 不允许其他事物,进行读写操作

3.3 mysql 行锁 - 使用场景

1 . 高并发读写操作

(高并发读写操作场景,行锁可以提高性能和并发性,因为它允许多个事务,操作不同行的数据)

2. 单行操作

3 . 短期锁

(对数据进行短期锁定,行级锁可以防止长时间阻塞其他事物)

4 . 实现并发控制

5. 复杂的事务处理

(需要对多行素具进行复杂的处理,可以使用行锁来锁定这些行,防止处理过程中被其他的事务修改)

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

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

相关文章

HWL-41无辅源静态电流继电器 0.5-9.99A 导轨安装 JOSEF约瑟

HWL-40系列无辅源静态电流继电器 HWL-41HWL-42 HWL-43HWL-61 HWL-62HWL-63 HWL-71HWL-72 HWL-73HWL-81 HWL-82HWL-83 产品概述 1、HWL系列集成电路无辅源电流继电器用于发电机、变压器和输电线的过负荷和短路保护装置中作为启动元件。本继电器为集成电路静态型继电器&a…

Token的详解

Token的详解 文章目录 Token的详解前言:简介:使用token: 前言: 为什么会用到Token,因为cookie和session一些自身的缺点,限制了一些功能的实现,比如: cookie:优点是节省服务器空间,缺点不安全。…

启动Vue-demo时引发的一系列问题—解决办法

目录 1.初始遇到的问题:输入npm run dev 1.治标的解决方法 2.治本的解决方法 第一步:检查是否安装了cnpm 第二步:手动找到cnpm目录 第三步:配置系统环境变量 第四步:查看是否安装成功 1.初始遇到的问题&#xf…

memcached面试问题以及答案

文章目录 memcached是什么?Memcached的工作原理Memcached的最大优势Memcached与MySQL的Query Cache比较Memcached与服务器的Local Cache比较Memcached的缓存机制Memcached的冗余机制Memcached的容错处理Memcached中的批量导入导出Memcached中的批量导出导入Memcache…

宝塔面板系列——两种方式安装青龙面板

因为最近旧windows服务器到期了,在搬服务器,新服务器尝试用Linux系统。过程中有很多不懂的地方,只能边搬迁边学边弄,顺带记录下来,哪天又要搬迁了,翻翻自己的文章也就一应俱全了。 非科班出身,选…

【计算机网络实践】Cisco Packet Tracer局域网组网(FTP服务器通过交换机连接客户端)

本文为应对计算机网络第一次实验所写的预习报告 一、实验准备 一台装有Cisco Packet Tracer的PC机,一个大学生大脑。 二、了解FTP和Cisco Packet Tracer 具体内容可在百度搜索,在物理机上用FileZilla Server实现ftp可参看我前面的文章。Cisco Packet Tr…

什么是上市公司股权收购线?

一、什么是上市公司股权收购线? 上市公司股权收购线是指在进行上市公司股权收购时,根据相关法律法规和规定,收购方需要遵守的特定比例或条件。这些比例或条件通常用于确定收购方在收购过程中需要采取的行动或满足的要求。 其中,…

【LabVIEW FPGA入门】FPGA不同传递数据方法比较

数据共享方法的选择应基于应用的需要。根据应用程序的重要特性,所讨论的任何一种方法都可能是合适的。 传输方法FPGA资源损耗?不同时钟源之间传递数据?新数据通知?常见用途变量逻辑片是是否提取最新数据存储器存储器是否否提取最新…

深入理解MySQL中的JOIN算法

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 目录 一、引言二、嵌套循环连接(Nested-Loop Join)2.1 工作原理2.2 性能考虑2.3 优化策略 三、块嵌套循环…

es6类,判断数据类型

es6的类 今日目标: 1.判断数据类型的方法 2.es6的类 3.es6类实现轮播图 00-回顾 # 原型作用:共享属性和方法特性:1. 每一个函数,这里特指构造函数,都会有一个prototype,这个就是原型对象,也叫显式原型…

机器翻译评价指标 BLEU分数

文章目录 提出背景英文全称和提出时间基本思想 提出背景 在机器翻译任务中,将同一个句子翻译成另外一种语言时,往往会有多个都是正确的翻译结果。因此,在构建机器翻译的评价指标时需要注意如何在有多个正确答案的情况下评价翻译结果的好坏。…

Java代码基础算法练习-递归求数-2024.03.22

任务描述: 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 任务要求: 代码示例: package march0317_0331;import java.util.Scanner;/*** m240322类,提供了一个反转输入字符串前5个字符的…

软考复习笔记day3(计算机体系结构和指令系统基础)(精简版)

计算机体系结构分类 处理机数量分类: 单处理(一个处理单元)并行处理系统(两个以上处理机互联).分布式处理系统 Flynn分类:(常考) 以指令流和数据流进行区别 指令流由控制部分进…

vue3初步学习

vue3初步学习 vue模版 练习代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>实验4</ti…

计算机二级(python)【二】

真题5 1、考生文件夹下存在一个文件PY101.py&#xff0c;请写代码替换横线&#xff0c;不修改其他代码&#xff0c;实现以下功能&#xff1a; 键盘输入正整数n&#xff0c;按要求把n输出到屏幕&#xff0c;格式要求&#xff1a;宽度为15个字符&#xff0c;数字右边对齐&#…

【小米汽车SU7实测】 小米汽车su7到底行不行?小米新能源轿车体验感怎么样?

小米汽车SU7是小米汽车的首款车型&#xff0c;定位“C级高性能生态科技轿车”&#xff0c;也是小米迈入新能源赛道的首次成果落地。 首先&#xff0c;让我们来谈谈它的性能。试驾过程中&#xff0c;小米SU7展现出了惊人的加速能力&#xff0c;0-100km/h加速仅需2.78秒&#xf…

《原型模式(极简c++)》

本文章属于专栏- 概述 - 《设计模式&#xff08;极简c版&#xff09;》-CSDN博客 本章简要说明原型模式。本文分为模式说明、本质思想、实践建议、代码示例四个部分。 模式说明&#xff1a; 方案&#xff1a;基类有一个虚函数clone&#xff0c;返回基类指针&#xff0c;派生类…

Vue项目使用process.env关键字及Vue.config.js配置解决前端跨域问题

1.process.env 是Node.js 中的一个环境 1.打开命令行查看环境: 2.process.env与Vue CLI 项目 Vue Cli 有以下三种运行模式 development 模式用于 vue-cli-service serve test 模式用于 vue-cli-service test:unit production 模式用于 vue-cli-service build 和 vue-cli-se…

【STL学习】(1)string类

前言 本文将详细讲解STL中string类的常用的接口函数。 一、为什么学习string类&#xff1f; 1、字符串类型的重要性 在现实生活中有很多复杂类型是以字符串来表达的&#xff0c;比如我们在搜索引擎输入的“数据”&#xff0c;一个人的姓名、身份证号等等。 所以字符串类型是很…

ETCD跨城容灾与异地多活网络故障的相关表现分析

ETCD跨城容灾与异地多活网络故障的相关表现分析 1. 网络架构2. 单个网络中断-跟leader区中断2.1. 网络中断2.2. 网络恢复 3. 单个网络中断-跟非leader区中断4. 两个网络中断-leader区中断5. 两个网络中断-非leader区中断6. 两个网络中断-非leader区中断7. 总结8. 参考文档 etcd…