数据库隔离级别

1、4种隔离级别2、

mysql:可重复读

oracle:读已提交

3、mysql实现可重复读--MVCC(多版本并发控制)

基于乐观锁,实现读已提交和可重复读

每行记录增加隐藏的两列,trx_id(当前行最新修改的事务id)和roll_pointer(指向更新前的undo log)

每开启一个事务,事务版本号会递增

read view,包括4个部分

可重复读:查询会生成一个read view

1、事务id<最小值,说明是之前事务的数据,直接返回

2、事务id>最小值,且小于下一次生成的事务id,且在未提交的事务id集合中,

则根据roll_pointer查找undo log日志链,找到之前版本的数据

3、事务id=自己事务id,说明是自己修改的数据,直接返回

读已提交:每次查询都会生成read view

事务id>最小值,且小于下一次生成的事务id,但不在未提交的事务id集合中,说明已经提交

则直接返回,所以会出现先后两次查询的结果不一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值