事务

作者: iamrenpeng | 来源:发表于2018-06-04 17:00 被阅读12次

事务

本地事务 acid

atomicity原子性:一组操作,要么全部成功,要么全部失败,不存在中间的情况 。

consistency一致性:不管事务的结果是成功还是失败,最终的结果时一致的。

isolation隔离性:在并发访问资源的时候,不同的事务之间不会相互影响。事务之间是隔离的。

duability持久性。一个事务一旦执行成功,结果会被持久化,不会改变。

事务隔离性:

脏读:一个事务读取了另一个事务未提交的数据。解决方法(read commited)

不可重复读:一个事务内两次读取的结果不一样。(update)解决方法(repeatable-read)

幻读(虚读):一个事务内两次读取的表的记录数不一样。(insert)解决方法(serializable)更新丢失:一个事务修改的值,被另一个事务所覆盖。解决方法:乐观锁和悲观锁

脏读现象

事务1开启事务,并且查询id=3的age的初始值。

zangdu1.png

事务2,隔离级别设置为:读未提交,查询id=3的age的初始值

zangdu2.png

事务1修改id=3的age的值为2,但不提交

zangdu3.png

事务2,查询id=3的age的值,结果时读到了事务1修改后的值

zangdu4.png

事务1回滚

zangdu5.png

这时候事务2读到的是age=2就是无效的。这种现象就是脏读。

不可重复读:

事务隔离级别为读未提交和读已提交都会导致不可重复读。

先说读未提交,基于以上,可以看出事务2在同一个事务内,两次读取的值不一样,这就是不可重复读。

读已提交的情况:事务1

norepeated1.png

事务2 设置事务隔离级别为读已提交

norepeat2.png

事务1修改id=3的age的值

norepeat3.png

事务2查询id=3的age的值

norepeat4.png

事务1commit

norepeat5.png

事务2查询id=3的age的值

norepeat6.png

这就是不可重复读,同一个事务里两次读取的不一样。

幻读(虚读)主要针对查询条数(insert)事务1

huandu1.png

事务2


huandu1.png

事务1开始事务,插入一条


huandu2.png

事务2查询


xudu3.png

这就是幻读,同一个事务中两次读取的条数不一样。

丢失更新:事务1

updatelost.png

事务2


updatelost.png

事务1更新id=1的name为bob


updatelost1.png

事务2更新id=1的age为12;


updatelost2.png

事务1修改的数据被事务2覆盖,这就是丢失更新问题。

相关文章

  • java事务

    1、java事务介绍 2、JDBC事务 3、JTA事务 1、java事务介绍 java事务分类:JDBC事务、...

  • 事务、MySQL与Python交互、Python 中操作 MyS

    1、事务 事务操作分两种:自动事务(默认)、手动事务 手动事务的操作流程 开启事务:start transacti...

  • 数据库事务书目录

    数据库事务 事务概念 本地事务 全局事务 全局事务的定义 J2EE中全局事务的实现 全局事务的优缺点 基于消息的分...

  • MySQL事务

    MySQL-innodb-事务 事务的特性 事务的生命周期 失败的事务: 事务的控制语句 面试题 事务日志-red...

  • mysql事务隔离机制及其隔离级别、实现原理分析

    目录 事务特性ACID属性 并发事务带来的问题 事务隔离级别 事务实现原理 事务特性ACID属性 事务特性指的就是...

  • MULE事务配置

    在mule的事务可能为jdbc事务,jms事务,xa事务等,多种事务.这里讲解事务的几个动作: 相关的文档:htt...

  • 事务—事务模型

    程序猿基础知识的学习、理解、整理——事务(方方土) 事务,看似很简单,其实很复杂,作为一个程序猿,你对事务到底了解...

  • 事务—XA事务

    程序猿基础知识的学习、理解、整理——事务(方方土) 什么是XA事务?在什么场景下会出现XA事务? @Transac...

  • 事务—事务模式

    程序猿基础知识的学习、理解、整理——事务(方方土) 什么是事务模式?这里提到的事务模式,主要是指在系统设计过程中的...

  • JDK动态代理给Spring事务埋下的坑

    service 模拟动态代理事务 测试类 预测结果模拟事务:开启事务execute doLink模拟事务:关闭事务...

网友评论

      本文标题:事务

      本文链接:https://www.haomeiwen.com/subject/olsysftx.html