《凤凰架构》-本地事务章节 读书笔记

1、写锁又名排它锁,写锁禁止其他事务施加读锁和写锁,而不禁止其他事务读取数据(如果遇到了个不加任何锁的另一个事务2,写锁是无法阻止事务2读取数据的),这就是读未提交隔离级别中的脏读问题产生的根因。

2、范围锁和排它锁:范围锁不仅禁止范围已有数据的修改操作,还能防止在该范围内新增或者删除数据,而排它锁是无法做到后者的。

3、数据库隔离级别(从严到松):

可串行化:读写锁+范围锁,持续到事务结束

可重复读:只加读写锁,且二者持续到事务结束,存在幻读问题

读已提交:加读写锁,写锁持续到整个事务结束,但读锁在查询操作完毕之后立即释放,因此存在不可重复读的问题

读未提交:只加写锁,写锁持续到事务结束,但完全不加读锁,存在脏读问题(根本原因是写锁只禁止其他事务加读写锁,但是不禁止其他事务读取数据

注:上面说的写锁和读锁均针对事务期间涉及到的数据,并不一定是表锁,更常见的形式是行级锁(大多数事务所涉及到的数据都是数据库的某些行,而不是整个数据库)

5、数据库状态的一致性:系统中的所有数据是符合期望的,且相互关联的数据之间不会产生矛盾

相关推荐
Lei活在当下37 分钟前
【业务场景架构实战】4. 支付状态分层流转的设计和实现
架构·android jetpack·响应式设计
AAA修煤气灶刘哥1 小时前
后端人速藏!数据库PD建模避坑指南
数据库·后端·mysql
架构师沉默4 小时前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
RestCloud5 小时前
揭秘 CDC 技术:让数据库同步快人一步
数据库·api
kfyty7257 小时前
不依赖第三方,不销毁重建,loveqq 框架如何原生实现动态线程池?
java·架构
得物技术8 小时前
MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈|得物技术
数据库·后端·mysql
刘立军9 小时前
本地大模型编程实战(33)用SSE实现大模型的流式输出
架构·langchain·全栈
一直_在路上9 小时前
Go 语言微服务演进路径:从小型项目到企业级架构
架构·go
可涵不会debug12 小时前
【IoTDB】时序数据库选型指南:工业大数据场景下的技术突围
数据库·时序数据库
ByteBlossom12 小时前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试