事务

作者: 红烧鸡翅膀_我喜欢吃 | 来源:发表于2020-02-19 12:53 被阅读0次

事务是一系列的操作以原子性的执行,要么全部成功、要么全部失败。

-----------------------------------------------------------

四个特性:原子性、一致性、隔离性、持久性

-----------------------------------------------------------

隔离级别:操作同一数据的事务与事务之间的关系

1、读未提交,读事务和写事务均不加锁,可能出现脏读(如果写事务回退,那读到的就是没有提交的数据)、幻读、不可重复读的情况。

2、读已提交(不可重复读),写事务对修改行加排他锁(X锁),读到的数据是多次写事务的数据,多次结果不一样。(会出现不可重复读和幻读)

3、可重复读;mysql默认级别。写事务对修改行加排他锁,读事务要加S锁(共享锁)【加了S锁就不能加X锁,但是可以继续加S锁】,保证读的时候没人能修改。mysql没有使用这种机制,采用了MVCC(多版本并发控制),在每个表增加了两个字段(最新版本和删除版本号列),select all操作其实是要对这两个字段过滤。

会出现幻读:因为写事务只对行增加了X锁,新增和删除表的数据会变化,之前搜索出3天可能待会就会5条,除非写事务对整个表加锁,即4

4、串行化:解决三个问题,要求事务一个接着一个执行,读写都加X锁,或者写加表级别的锁。

-------------------------------------------------------------

事务传播机制 (解决事务嵌套事务的问题)

1、required 正在执行的事务,遇到新的事务,新的事务加入,一个异常,全部都异常,try catch也没用(一个回退,通知所有回退)

默认常用

2、required_new 遇到新事务,新建一个,互不干扰,无需牵扯。

。。。还有5个极少用的,有时间细看

相关文章

  • 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/gpfafhtx.html