【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

Java后端面试突击指南:三轮复习法攻克八股文、场景题与AI新考点 在软件工程实践中,构建扎实的知识体系是应对复杂技术挑战的基石。其核心原理在于将离散的知识点通过逻辑框架进行有效串联,从而提升问题分析与解决能力。这一过程的技术价值在于,它能帮助开发者在面对海量信息时,快速定位核心,实现高效学习与知识迁移。尤其在面试准备、技术攻坚等应用场景中,结构化的复习策略显得尤为重要。本文聚焦于Java后端技术栈,针对高频出现的面试考点,如并发编程中的线程池原理与JVM性能调优,提供了一套可操作的短期突击方法论。该方法强调功利性学习,通过三轮递进式复习,帮助应试者快速建立有竞争力的知识框 阅读详情

大家好,我是小于哥哈。前几天能分享了第一期面试题,MySQL 中有哪几种锁 和 这些锁各有哪些特点 ,这道面试题是经常会被问到的一个面试题,大家反馈的都挺不错的。今天特此来总结一下。

首发于公众号【终端研发部】

核心

Mysql锁机制,分为哪些锁,有什么样的特点?

目标

  • 锁的分类
  • 锁的特点
  • 锁的应用场景

事务并发带来的问题与解决方案

补充

1.脏读:一个事务可以读取到另一个事务未提交的数据。如下图:

解决脏读:修改数据时加上写锁

不可重复读:在一个事务中不同时间段查询出现不同的结果,可能被更新可能被删除。如下图

解决不可重复读:事务A第一次读数据时加上读锁,事务B不能修改,会阻塞。

3.幻读:在一个事务中不同时间段查询,记录数不同。与不可重复读的区别是:在幻读中,已经读取的数据不会改变,只是与以前相比,会有更多的数据满足查询条件。如下图:

解决幻读:事务A范围查询时加上临键锁,锁住相邻区间,事务B不能插入到被锁住的区间,防止幻读。

答案揭晓

按锁粒度分类:

  • 1、行级锁
  • 2、表级锁
  • 3、页级锁

解释:

1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

2、行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

按照锁级别分类 :

  • 1、共享锁
  • 2、排他锁
  • 3、意向锁

解释:

1、共享锁:一旦上锁,任何事务(包括当前事务)无法对其修改,其他事务可以并发读取数据,也可在对此数据再加共享锁

2、排他锁(独占锁):如果事务对数据A加上排他锁后,则其他事务不可并发读取数据,也不能再对A加任何类型的锁。获准排他锁的事务既能读数据,又能修改数据。

3、意向锁: 分为意向共享锁和意向排他锁,特点: 意向锁是InnoDB自动加的,不需要用户干预。

ps: 如何学习java ,推荐两个白嫖学习的资料:

1、书籍:

codeGoogler/ProgramBooks

2:视频教程:

全网免费Java资源下载SpringBoot、Spring、Mybatis、Redis、RabbitMQ、SpringCloud、高并发(持续更新)_这个时代,作为程序员可能要学习小程序-优快云博客

最后

最后,照旧安利一波我们的工种号:「终端研发部」,目前每天都会推荐一篇优质的技术相关的文章,主要分享java相关的技术与面试技巧,我们的目标是:知道是什么,为什么,打好基础,做好每一点!这个主创技术公众号超级值得大家关注。

如果你有什么技术上的问题,都可以咨询我,技术路上漫长而优雅, 于哥可以一直陪伴。如果有帮助,欢迎点赞!

【信息科学与工程学】计算机科学与自动化——第三百零五篇 计算机系统中的各类运算操作01 编号类型领域运算操作运算类型算法算法的详细设计及数学分析参数列表及参数的数值设计应用场景 (100+条)集合运算​1集合运算关系代数并集 (Union)集合运算归并排序去重合并两个集合,去除重复元素。时间复杂度 O(n+m),n,m为两集合大小。输入:集合A, B。输出:A∪B。数据集成、多表结果合并、去重后的全量数据提取。2集合运算关系代数交集 (Intersection)集合运算哈希交集找出同时属于两个集合的元素。平均时间复杂度 O(min(n,m)),最坏 O(n*m)。输入:集合A, B。输出:A∩ 阅读详情

相关推荐

在运行opencv时出现的两个问题:AttributeError: module ‘cv2‘ has no attribute ‘gapi_wip_gst_GStreamerPipeline‘

解决了opencv的两个问题:由问题一引出 AttributeError: module 'cv2' has no attribute 'gapi_wip_gst_GStreamerPipeline' cv2.error:OpenCV(4.1.2)C:\projects\opencvpython\opencv\modules\highgui\src\window.cpp:717:error: (-2:Unspecified error) The function is not implemented...

hu_yinghui的博客 3274

Java锁深入理解5——共享锁

前面无论是ReentrantLock 还是 synchronized,我们都称之为“独占锁”。其实AQS还支持另外一种锁:共享锁。说到共享锁。我首先想到的就是“读写锁”里的“读锁”,在我的认知里,共享锁就是读锁。其实也差不多,因为读写锁中动读锁就实现了AQS共享锁机制。JDK中除了读写锁ReentrantReadWriteLock之外,还有CountDownLatch。共享锁的朴素概念:有多个持用该锁的线程可以同时运行。

yunduanyou的博客 2092

【PyBind11+anaconda+opencv+windows11+cmake+wsl+vscode】从入门到跑通。构建基于opencv c++的python package

如何安装请详见上文 【PyBind11+anaconda+opencv+windows11+cmake+wsl+vscode】从入门到跑通。构建基于opencv c++的python接口_子韵如初的博客-优快云博客w不需要安装啥x11 、 xming直接mobxterm可以搞定点击右上角的X server打开可视化服务器然后 apt install x11-apps -yxclock 搞定从mobxterm可以看到display的端口X11显示可视化的原理是就是通过X协议,类似于http对linux于w

weixin_43953700的博客 3万+

数据库的锁

一文搞懂数据库的锁

demonXwire的博客 1353

从零开始:用YOLOv8-Pose实现实时人体姿态检测(附完整代码)

本文提供了一份从零开始的完整实战指南,详细介绍了如何使用YOLOv8-Pose构建实时人体姿态检测系统。内容涵盖环境搭建、数据准备、模型训练与调优,以及高性能部署和进阶应用开发,并附有可直接运行的代码示例,帮助开发者快速掌握Pose Estimation技术并将其应用于实际项目。

h6i7j8的博客 619

Windows本地化部署Dify完整指南

本文详细介绍了在Windows系统上本地化部署Dify的完整步骤,涵盖了Docker Desktop的安装与配置、Dify源代码的获取、环境变量的设置、服务的启动与管理、以及常见问题的解决方案。文章首先指导用户如何下载和安装Docker Desktop,并配置WSL 2功能。接着,详细说明了如何获取Dify源代码,并通过Docker Compose启动服务。文章还提供了高级配置指南,包括如何配置大语言模型和更新Dify版本。最后,针对Docker镜像拉取失败等常见问题,提供了详细的诊断和解决方案。通过本文,

jacky_zhuyuanlu的博客 1万+

数据库共享锁(读锁)和排他锁(写锁)

为了保持数据的一致性,数据库提供了事务。但是,这只能解决单个会话的问题,并不能解决并发操作下数据的一致性。 并发操作下,数据会出现以下问题: 1、修改丢失 事务A与事务B从数据库中读入同一数据并修改,事务B提交的结果破坏了事务A提交的结果,导致事务A的修改被丢失。 2、脏读 事务A修改某一数据,写回磁盘,期间事务B读取同一数据;事务A由于某种原因被撤销,数据回滚,则B读到的数据与库中真实数据不符。...

左直拳的马桶_日用桶 5336

移远EC800M CAT1模块HTTP POST实战:从AT指令到OneNet平台数据上报(附STM32代码)

本文详细介绍了移远EC800M CAT1模块通过AT指令实现HTTP POST数据上报到OneNet平台的完整流程,包含STM32实战代码。内容涵盖PDP上下文激活、HTTP服务配置、JSON数据包构建等关键技术要点,并提供硬件连接、状态机设计和错误处理等实用方案,助力开发者快速实现物联网设备稳定数据传输。

weixin_42565652的博客 506

一文搞懂Mysql中的共享锁、排他锁、悲观锁、乐观锁及使用场景

其实mysql中的引擎有很多种类,其中InnoDB和MyISAM引擎最常用在mysql5.5版本前默认使用MyISAM引擎,之后使用InnoDB引擎查看数据库引擎命令如下。

延宝小白马的博客 2007

深度学习-161-Dify工具之对比使用工作流和聊天流生成图表可视化的html文件

分别使用聊天流和工作流进行数据分析结果的可视化,生成html文件。聊天流可以配置带记忆,这样就可以多次交互优化结果。

qq_20466211的博客 1709

Python爬虫实战:逆向工程与异步爬虫技术,高效抓取国家知识产权局专利数据

相比于传统的Selenium,Playwright由微软开发,支持多浏览器(Chromium, Firefox, WebKit),API更现代,执行速度更快,并且能轻松录制用户操作生成代码。通常,列表中的摘要信息是缩略的,我们需要进入每个专利的详情页获取完整信息(如主权要求、法律状态等)。我们的第一步是手动操作一遍搜索流程,并用Playwright的“录制”功能或开发者工具,找出真正返回专利数据的那一个或多个网络请求。以友好的、对人类行为模拟的方式爬取数据是基本的网络礼仪,也能有效避免你的IP被封锁。

2201_76125261的博客 2418

MySQL-锁:共享锁(读)、排他锁(写)、表锁、行锁、意向锁、间隙锁,锁升级

在MySQL中,锁升级是指事务在执行过程中,将当前持有的锁从低级别升级到更高级别的过程。MySQL数据库中的锁是控制并发访问的重要机制,它们确保数据的一致性和完整性。因此,在这种场景下,合理使用共享锁和排他锁可以确保数据的完整性和一致性,避免潜在的并发问题。为1的产品行的共享锁,但在后续执行中需要对该行进行修改,因此需要将共享锁升级为排他锁。为100的订单行的意向排他锁,后续执行了删除操作,需要将意向锁升级为表级锁。

小孔靠得住的博客 2565

qt项目中添加 jsoncpp 库

qt使用jsoncpp库

deroy 1349

【问答分享第一弹】 Mysql锁机制,分为哪些锁,有什么样的特点?

点击上方蓝色“终端研发部”,选择“设为星标”学最好的别人,做最好的我们 大家好,前几天能分享了第一期面试题,MySQL 中有哪几种锁 和 这些锁各有哪些特点 ,这道面试题是经常会被问到的...

这个时代,作为程序员可能要学习小程序 385

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

系统整容纪:用知识来“武装“自己~认识MySQL的锁与事务

通过文章上述内容,我们对于MySQL锁和事务的基本知识算是有了基本的了解,那么回到文章开篇的问题上来。

京东科技开发者 1177

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【问答分享第二弹】 Mysql的搜索引擎 ,看完暴虐面试官!

大家好,我是小于哥啊,前几天能分享了第二期面试题MySQL 中搜索引擎的面试考点,这道题是面试常温的面试,看完在数据库引擎方面,我相信你一定会有收获的 还没有看我第一分享的可以去参考下: 第一期分享: 【问答分享第一弹】关于MySQL行锁、表锁、排他锁、共享锁,看完吊打面试官! 首发于公众号【终端研发部】 核心点 1、搜索引擎InnoDB和MyIsam的区别和联系 2、Memory的相关的 知识的补充 目标 1、搜索引擎InnoDB和MyIsam的区别和联系 2、Memory的相关的 知识的补充 3、关

每日搜罗 239

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

系统整容纪:用知识来"武装"自己~认识MySQL的锁与事务

本文通过介绍在实际工作中一次异常排查引发的自我思考与学习,来使得读者受到一定的启发,从而迸发出星星点光,扩展出自己独有的思路,进而在工作中不断的挖掘自我不足之处,同时通过学习与"锻炼"来不断地强大自己。分享工作中的点点滴滴,贯彻千里之行,始于足下,最终以微不足道的量变引起化蝶的质变精神。以自己为例拒绝在舒适的中央区域安逸的...

weixin_40188213的博客 140

MySQL面试进阶:索引原理、事务锁与SQL优化全解析

数据库性能优化是后端开发的核心能力,而MySQL作为最常用的关系型数据库,其索引设计与事务机制直接决定了业务系统的稳定性与响应速度。从B+树的存储结构到最左前缀原则,从覆盖索引到回表与索引下推,理解索引原理才能写出高效SQL。同时,事务隔离级别与MVCC机制解释了快照读与当前读的差异,而间隙锁与死锁分析则是高并发场景绕不开的实战问题。SQL优化层面,深分页、慢查询排查、大表DDL都有成熟方案。本文结合面试高频追问与线上真实案例,系统梳理索引、事务、锁与优化技巧,帮助开发者建立从原理到实践的完整知识链,从容应

weixin_30887919的博客 355

怎么优雅的介绍自己的项目?

点击上方关注 “终端研发部”设为“星标”,和你一起掌握更多数据库知识大家好,我是小于哥啊,最近有人问我,我们平常面试的时候如何介绍子自己的项目。问题在于面试的时候不知道怎么介绍自己的项目,...

这个时代,作为程序员可能要学习小程序 2276

Java秋招面试八股文通关指南:JVM到Redis核心考点全拆解

技术面试是检验开发者知识体系与工程能力的重要关口,尤其在秋招场景下,扎实的基础知识往往决定了候选人能否在激烈竞争中突围。面试官通过追问JVM内存模型、并发机制、Spring原理等核心问题,考察候选人对底层实现的理解深度;而常用的排序算法如冒泡排序、快速排序的编写能力,则直观反映基础编码功底。针对实际开发中常见的java: outofmemoryerror: insufficient memory问题,更需要从内存区域划分与垃圾回收机制入手系统掌握。本文从构建知识地图、高频考点拆解、结构化表达三个维度,系统梳

weixin_30367873的博客 304

阿里JAVA后端实习面试全解析:从核心考点到实战策略

JAVA后端开发是构建现代互联网服务的基础,其核心在于对编程语言、系统架构和数据处理原理的深入理解。从技术原理上看,扎实的JAVA基础、高效的数据结构与算法、以及数据库与操作系统的知识,共同构成了后端工程师解决高并发、高可用性问题的能力基石。这些技术的价值在于能够支撑起亿级用户的产品,保障系统的稳定与性能。在应用场景上,无论是电商交易、社交互动还是内容推荐,都离不开后端技术的支撑。本文聚焦于阿里巴巴技术实习面试,深入剖析了其对于JAVA后端候选人**基础扎实度**与**工程素养**的考察逻辑,系统拆解了从J

weixin_33693070的博客 380

【系统架构设计师】综合知识篇

本文是软考系统架构设计师备考笔记,系统梳理了考试核心知识点,重点涵盖中间件技术、缓存问题和解决方案。主要内容包括: 中间件概述:定义位于OS与应用间的软件层,分类包括数据库访问、RPC、消息队列等,分析7大技术优点。 消息中间件:对比RabbitMQ/Kafka/RocketMQ特性,详解点对点和发布订阅模型,列举异步解耦、流量削峰等典型场景。 Redis缓存:介绍单线程模型、5种数据结构,重点分析RDB/AOF持久化机制和集群高可用方案。 缓存三大问题:通过流程图解析雪崩(随机过期时间/熔断降级)、穿透(

你的博客 879

mysql中的共享锁、排他锁、悲观锁和乐观锁

共享锁(Share Lock) 共享锁又称读锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改,知道已释放所有共享锁 如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。 用法 SELECT ... LOCK IN SHARE MODE; 在查询语句后在LOCK IN SHARE MODE,mysql会对结果的每行都在共享锁,当没有其他线程对查询结果集的任何一行...

weixin_43594483的博客 313

JAVA------synchronized关键字

概述 synchronized关键字是通过对一个对象加锁,来解决多线程间的同步问题,具体使用不做赘述,主要讨论synchronized的实现原理。 详情 先看段代码: public class T09_Sync { public static void main(String[] args) { Object o=new Object(); synchronized (o){ System.out.println("Hello");

山海可平的博客 189
上一篇: 全网超硬核程序必读资源免费分享
下一篇: 三万字,100题!Linux知识汇总!
84696zuoguwz
博客等级 码龄5年 12粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值