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

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

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

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

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

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

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

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

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

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

相关推荐
zandy10118 小时前
Agentic BI 架构实战:当AI Agent接管数据建模、指标计算与可视化全链路
人工智能·架构
Flying pigs~~9 小时前
RAG智慧问答项目
数据库·人工智能·缓存·微调·知识库·rag
misL NITL9 小时前
mysql之如何获知版本
数据库·mysql
许彰午9 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
2401_8323655210 小时前
JavaScript中rest参数(...args)取代arguments的优势
jvm·数据库·python
2301_7796224111 小时前
Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】
jvm·数据库·python
薪火铺子11 小时前
微服务认证方案对比与选型
微服务·云原生·架构
2301_7662834411 小时前
c++如何将控制台输出保存到文件_cout重定向到txt【详解】
jvm·数据库·python
北极的冰箱11 小时前
MySQL Ver 8.0.41 for macos14.7密码遗忘
数据库·mysql
XDH_CS12 小时前
MySQL 8.0 安装与 MySQL Workbench 使用全流程(超详细教程)
开发语言·数据库·mysql