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

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

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

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

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

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

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

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

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

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

相关推荐
2303_763799562 分钟前
MySQL数据库函数——日期函数
数据库
张声录115 分钟前
【ETCD】【实操篇(十九)】ETCD基准测试实战
java·数据库·etcd
zfoo-framework31 分钟前
(推荐)【通用业务分发架构】1.业务分发 2.rpc调用 3.Event事件系统
架构
鱼香鱼香rose40 分钟前
面经hwl
java·服务器·数据库
m0_748254661 小时前
完美解决phpstudy安装后mysql无法启动
数据库·mysql
时雨h3 小时前
30天面试打卡计划 2024-12-25 26 27 面试题
java·开发语言·数据库
TDengine (老段)5 小时前
TDengine 新功能 VARBINARY 数据类型
大数据·c语言·数据库·时序数据库·tdengine·涛思数据
yuenblue7 小时前
什么是ondelete cascade以及使用sqlite演示ondelete cascade使用案例
数据库·sqlite
howard_shooter7 小时前
Oracle Managed Files(OMF)
数据库·oracle
yangfeipancc8 小时前
数据库-用户管理
android·数据库