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

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

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

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

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

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

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

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

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

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

相关推荐
饮长安千年月34 分钟前
玄机-第八章 内存马分析-java02-shiro
数据库·安全·web安全·网络安全·应急响应
chxii1 小时前
第五章:MySQL DQL 进阶 —— 动态计算与分类(IF 与 CASE WHEN)多表查询
数据库·mysql
Mr_Xuhhh2 小时前
五种IO模型与非阻塞IO
数据库
拾零吖2 小时前
数据库 - SQL
数据库·sql
不会c嘎嘎2 小时前
MySQL -- 库的操作
数据库·mysql
陌上桑花开花2 小时前
DBeaver常用配置
数据库
百***87442 小时前
MySQL 查看有哪些表
数据库·mysql·oracle
曹牧2 小时前
Oracle:查询当前正在等待执行的SQL语句
linux·数据库·oracle
_Kafka_2 小时前
在 Oracle Data Guard 环境中,手工将备库(Standby)切换为主库(Primary)
数据库·oracle
百***24132 小时前
oracle使用PLSQL导出表数据
数据库·oracle