项目地址
- 教程作者:
- 教程地址:
- 代码仓库地址:
- 所用到的框架和插件:
dbt
airflow
一、数据库
1.1 事务隔离级别
1. 事务的四大特性
- Transaction Isolation Level,
2. Read Uncommited脏读(未提交读)
可以读取到别的事务未提交的数据
- 原理:当前A事务可以读其他事务B未提交的数据,B事务可能回滚也可能不回滚
- 特点:性能高,并发高,但数据不可靠
- 场景:报表和统计使用
3. Read Commited幻读(sql默认已提交读)
只能读取已提交的数据,和uncommited相反,幻读不能避免
- 原理:事务A只能读取已经提交的事务
- 特点:避免了脏读,但会出现,幻读(两次查询结果结果行数不同,)
- 场景:大部分的OLTP系统
4. Repeatable Read
读过的行会被加锁,防止读过的行被修改,幻读不能避免
- 原理:事务A执行期间,读过的行会被加锁,直到事务结束,会有row version
- 特点:避免了脏读和不可重复读,但是不能避免幻读,①别的事务可以读取当前事务的锁的值;②别的事务可以插入符合条件的行
- 场景:银行扣款,保持余额一致
5. Serializable
将所有事务串行