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

目录

思维导图:

简单概念

一.隔离性与隔离级别

1.隔离性

2.四种隔离级别的具体区别

3.四种隔离级别的实现

二.事务的回滚与长事务

1.回滚日志

2.长事务

三.事务的启动方式

1.mysql事务的启动方式

2.应如何启动事务


思维导图:

​​​​​​​03|事务隔离:为什么你改了我还看不见? | 八九. | 思维导图(新) | ProcessOn

密码:aFH2

简单概念

事务就是要保证一组数据库操作,要么全部成功,要么全是失败,在mysql中,事务支持的实现都是在引擎层实现的。mysql是一个支持多引擎的系统,但并不是所有引擎都支持事务,录入myisam原生引擎就不支持事务,这也是它被innoDB取代的原因

一.隔离性与隔离级别

事务的四大特性:原子性,一致性,隔离性,持久性

1.隔离性


读未提交:一个事务还没提交的时候,他做的变更数据就能被别的事务看到
读已提交:一个事务提交之后,它做的变更才会被其他事务看到
可重复读:一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的
串行化:顾名思义就是对于同一行记录,写会加写锁,读会加读锁,当出现读锁冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行

2.四种隔离级别的具体区别

1.读未提交:v1=2,这时候事务B还没有提交,但是结果已经被A看到了,因此V2和V3也都是2
2.读提交:V1=1,V2=2,事务B的更新在提交之后才能被A看到,所以V3也是2
3.可重复读:V1,V2=1,V3=2.之所以V2还是1.遵循的就是这个要求,事务在执行期间看到的数据前后必须保持一致
4.串行化:事务B执行将1改成2的时候会被锁住,直到事务A提交之后,事务B才可以继续执行
oracle和mysql的默认不一致隔离级别不一致,需要注意
每个隔离级别存在都有自己的意义:可重复读的话,比如说你在校对这个月和上个月的数据的时候,如果现在又有数据的修改,你不希望影响到你现在校对的结果,那就要使用可重复读

3.四种隔离级别的实现

1.读未提交:这个隔离级别下直接返回记录上的最新数值
2.读已提交:在 sql语句开始执行的时候创建一个视图。整个事务存在的期间都是在用这个视图
3.可重复读:在 事务启动的时候创建一个视图。整个事务存在的期间都在用这个视图
4.串行化:使用直接枷锁的方式来避免并行访问

二.事务的回滚与长事务

回滚段指的是回滚回去,不是说现在要修改的值,我一直处在思维误区,
看了好久才明白这张图想说明的是什么意思,脑壳不够用
同时你会发现,即使现在有另外一个事务正在将4改成5,这个事务跟
A,B,C对应的事务是不会冲突的

1.回滚日志

回滚日志总不会一直保留,在不需要的时候才会删除回滚日志,这是系统判断的
当没有事务在需要用到这些回滚日志的时候,回滚日志会被删除
什么时候判断能否删除:当系统中没有比这个回滚日志更早的read=view时候,
还有一种说法是,其他事务不用这个这个事务回滚时候,放入待清理的链表中

2.长事务

意味着系统里面会存在很老的事务视图,这个事务随时可以访问数据库里的任何数据

缺点:印象回滚段,占用所资源(后面会说明)

三.事务的启动方式

1.mysql事务的启动方式

1.显式启动事务语句:begin或者start transaction,配套的语句是commit,回滚的语句是rollback

2.set autocommit=0,这个命令会把线程中的自动提交给关掉,以为这你执行一个select语句,这个事务就启动了,并不会自动提交,知道你提交或者回滚,或者断开连接才才结束, 这就会导致了长连接,意外的长事务的问题

2.应如何正确启动事务

set autocommit=1,通过显示语句来启动事务
提交的方式可以采用commit work and chain (自动提交这个事务,并进入下一个事务)

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腊Rou单车

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值