知识点
1 经典案例 转账
2 查 加减 更新余额
3 事务在引擎层
4 事务同时执行产生的问题 : 脏读 , 不可重复读 , 幻读
5 解决 : 各种隔离级别
6 隔离越高效率越低
7 read uncommited , read commited , repeatable read , serializable
8 可重复读 : 和启动时看到的数据是一致的
9 序列化 : 写加锁 , 读加锁 , 出现冲突则阻塞该事务
10 视图的概念 ? , RR在事务启动时创建 , RC在每个SQL语句执行的时候创建 , RU和S没有视图 , RU返回最新值 , 串行加锁
11 oracle默认是RR
12 可重复读场景 : 月底算账 , 当前余额 , 此时可能会有新的交易 , 开启事务来处理
13 可重复读实现: 对每一条记录的每一次更新 , 保存回滚操作
14 要想得到视图A , 要回滚3次
15 长事务可能生成很多回滚记录 , 占用大量空间
16 当回滚记录没被用到的时候才会被删除
17 长事务也占用锁资源
18 启动事务: begin , start trsaction , commit , rollback , set autocommit=0
19 用什么方案避免长事务 ? 第四讲最后有说
评论 留言可以当做测试用例 看提问自己能不能解答
20 余额转账的最坏情况分析?