行锁理论|学习笔记

简介: 快速学习行锁理论

开发者学堂课程【MySQL 高级应用 - 索引和锁行锁理论】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/598/detail/8633


行锁理论


目录:

一、行锁简介

二、事务隔离级别

 

一、行锁简介

偏向与 InnoDB 存储引擎,开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。InnoDB MyISAM 的最大不同有两点:一是支持事务,二是采用了行级锁。

1.事务及其 ACID 属性

事务是由一组 SQL 语句组成的運辑处理单元,事务具有以下4个属性,通常称为事务的 ACID 属性。

原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。

一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性,事务结束时,所有的内部数据结构(B 树素引或双向链表)也都必须是正确的。

隔离性(Isolation),数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的“独立”环境执行。这意味者事务处理过程中的中间状态对外部是不可见的,反之亦然。

持久性(Durable),事务完成之后,它对于数据的修改是永久性的,即使出现系统故障也能够保持。

2.并发事务处理带来的问题

1更新丢失

当两个或多个事务选择同一行。然后基于最初选定的值更新该行时。由于每个事务都不知道其他事务的存在,就会发生丢先更新问题一一最后的更新覆盖了由其他事务所做的更新。
例如,两个程序员修改同一 java 文件。每程序员独立地更改其副本,然后保存更改后的副本。

这样就覆盖了原始文档,最后保存其更改副本的编辑人员覆盖前一个程序员所做的更改。
如果在一个程序员完成并提交事务之前,另一个程序员不能访同同一文件,则可避免此问题。

2脏读:

一个事务正在对一条记录做修改,在这个事务完成并提交前,者条记量的数据就处于不一致状态;这时,另一个事务也来读取同一条记录,如果不加控制,第二个事务读取了这些“脏”数据。并据此做进一步的处里,就会产生未提交的数据依赖关系。这种现象被形象地叫做“脏读”。
一句话:事务 A 读取到了事务 B 已修改但尚未提交的的数据,还在这个数据基础上做了操作。此时,如果 B 事务回滚, A 读取的数据无效,不符合一致性要求。

3不可重复读:

一个事务在读取某些后某个时间,再次读取以前读过的数据,却发现其读出的数据已经发生了改变、或某些记录已经被删除了。这种现象就叫做“不可重复读”。

一句话:事务 A 读取到了事务 B 已经提交的修改数据,不符合隔离性。

4幻读

一个事务按相同的查询条件重新读取以前检索的数据,却发现其他事务插入了满足其查询条件的新数据,这种现象就称为“幻读”。

一句话:事务 A 读取到了事务 B 提交的新增数据,不符合隔离性。

脏读是事务 B 里面修改了数据,

幻读是事务 B 里面新增了数据。

 

二、事物隔离级别:

“脏读”、“不可重复读”和“幻读”,其实都是数据库读一致性问题,必须由数据库提供一定的事务隔离机制来解决。

 

读数据一致性及允许的并发副作用隔离级别

读数据一致性

脏读

不可重复读

幻读

未提交读(Read uncommitted

最低级别,只能保证不读取无理数损坏的数据

已提交读(Read committed)

语句级

可重复读(Repeatable read)

事务级

可序列化(Serializable)

最高级别,事务级

 

数据库的事务隔离越严格,并发副作用越小,但付出的代价也就越大,因为事务隔离实质上就是使事务在一定程度上“串行化”进行,这显然与“并发”是矛盾的。

同时,不同的应用对读一致性和事务隔离程度的要求也是不同的,比如许多应用对“不可重复读”和“幻读”并不敏感,可能更关心数据并发访问的能力。

相关文章
|
3天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
2天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
2天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
5天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
576 2
|
3天前
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
864 4
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
kde
|
5天前
|
人工智能 关系型数据库 PostgreSQL
n8n Docker 部署手册
n8n是一款开源工作流自动化平台,支持低代码与可编程模式,集成400+服务节点,原生支持AI与API连接,可自托管部署,助力团队构建安全高效的自动化流程。
kde
399 3
|
5天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践
本文介绍RAG(检索增强生成)技术,结合Spring AI与本地及云知识库实现学术分析AI应用,利用阿里云Qwen-Plus模型提升回答准确性与可信度。
278 91
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践