03 | 事务隔离:为什么你改了我还看不见?

知识点

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 余额转账的最坏情况分析?

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容