1:事物是一组SQL的集合,要么都执行,要么都不执行。有ACID4个特性,即:原子性、一致性、隔离性、持久性。

A(Atomicity)原子性:整个事物是不可分割的工作单位。

C(consistency)一致性:是指事物将数据库从一种状态变为另外一种状态。在事物之前和事物之后,数据库的完整性约束没有被破坏。

I(isolation)隔离性:隔离性的其他称呼:并发控制(concurrency control)、可串行、锁。即:该事物提交之前对其他事物不可见。

D(durability)持久性:事物一旦提交,其结果就是永久性的,及时发生宕机等故障,数据库也能将数据恢复。

特殊:MySQL的NDB Cluster引擎来说,虽然其支持事物,但是不能满足D的要求;Oracle的事物隔离级别是READ COMMITTED,不满足I的要求,即不满足隔离性。

InnoDB的存储引擎默认是READ REPEATABLE的事物隔离级别。

2:事物的分类

扁平事物

带有保存点的扁平事物

链事物

嵌套事物

分布式事物

3:扁平事物是事物模型中最简单的一种。从BEGIN WORK开始,到COMMIT WORK或者ROLLBACK WORK 结束。

扁平事物的3中不同的结果:

扁平事物的缺点:一旦设计的操作比较多,事物较大,如需求回滚某一小部分则花费的代价较大。由此,引出了带有保存点的扁平事物。

4:带有保存点的的扁平事物

该事物允许事物执行过程中回滚到同一事物中较早的一个状态。

5:链式事物

6:嵌套事物

7:分布式事物

通常在分布式环境中运行的扁平事物,因此需要根据数据所在位置访问网络中的不同节点。

例如:用在在ATM进行银行转账操作。从招商转账到工商。

ATM可以视为节点A;发出转账申请

招商后台数据库可以视为节点B;扣款

工商后台数据库可以视为节点C;增款

A节点收到同时完成或者失败。

这里需要用到分布式事物,因为A节点不能通过调用一台数据库完成任务,访问网络中两个节点的数据库,在每个节点的数据库执行的事物操作又都是扁平事物。对于分布式事物,同样满足ACID特性,要么都发生,要么都失效。

MySQL事物系列:1:事物简介的更多相关文章

  1. MySQL是如何实现事物隔离?

    前言 众所周知,MySQL的在RR隔离级别下查询数据,是可以保证数据不受其它事物影响,而在RC隔离级别下只要其它事物commit后,数据都会读到commit之后的数据,那么事物隔离的原理是什么?是通过 ...

  2. Spring系列之事物是如何管理的

    前言 我们都知道Spring给我们提供了很多抽象,比如我们在操作数据库的过程中,它为我们提供了事物方面的抽象,让我们可以非常方便的以事物方式操作数据库.不管你用JDBC.Mybatis.Hiberna ...

  3. Mysql备份系列(1)--备份方案总结性梳理

    mysql数据库备份有多么重要已不需过多赘述了,废话不多说!以下总结了mysql数据库的几种备份方案: 一.binlog二进制日志通常作为备份的重要资源,所以再说备份方案之前先总结一下binlog日志 ...

  4. MySQL基础之自连接用法简介

    MySQL系列之自连接简介,MySQL自连接操作,没有特定的关键字,所谓自连接指的是同一个表不同实例之间的join操作 引用https://www.w3resource.com的图示: 特征: 自连接 ...

  5. Spring 系列: Spring 框架简介 -7个部分

    Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级 ...

  6. Mysql优化系列(2)--通用化操作梳理

    前面有两篇文章详细介绍了mysql优化举措:Mysql优化系列(0)--总结性梳理Mysql优化系列(1)--Innodb引擎下mysql自身配置优化 下面分类罗列下Mysql性能优化的一些技巧,熟练 ...

  7. Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录

    Mysql最常用的三种备份工具分别是mysqldump.Xtrabackup(innobackupex工具).lvm-snapshot快照.前面分别介绍了:Mysql备份系列(1)--备份方案总结性梳 ...

  8. Spring 系列: Spring 框架简介(转载)

    Spring 系列: Spring 框架简介 http://www.ibm.com/developerworks/cn/java/wa-spring1/ Spring AOP 和 IOC 容器入门 在 ...

  9. [渣译文] SignalR 2.0 系列: SignalR简介

    原文:[渣译文] SignalR 2.0 系列: SignalR简介 英文渣水平,大伙凑合着看吧,并不是逐字翻译的…… 这是微软官方SignalR 2.0教程Getting Started with ...

随机推荐

  1. 解决org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource

    spring中做成bean,可以使用property"resourceLoaderPath"指定工程中的路径 <bean id="velocityEngine&qu ...

  2. 如何进行Logstash logstash-input-jdbc插件的离线安装

    我们单位的服务器位于隔离区,不允许链接互联网,因此整理了在ELK集群上离线安装Logstash的jdbc input插件的方法,供大家参考. 总体思路是需要一台中转的机器,这台机器需要能够访问互联网, ...

  3. .NET零基础入门06:面向对象入门

    一:前言 在本系列课程的第一部分,我们说明为了要选择C#作为你成为程序员的第一门语言: • 首先,C#是一门非常优秀的面向对象编程的语言: 凡是对编码感兴趣的同学一定听说过"面向对象编程&q ...

  4. .condarc(conda 配置文件)、换国内源

    原文地址 https://blog.csdn.net/lanchunhui/article/details/71379555 Configuration — Conda documentation . ...

  5. JSON与XML的区别比较(转)

    原文链接:JSON与XML的区别比较 1.定义介绍 (1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以 ...

  6. arcgis server 10 for java 8399根目录是404的提示取消,并跳转到 地图目录 /arcgis/rest/services下

    看了Howto: 取消ArcGIS Server 9.x for Java内置tomcat在8399端口的文件列表 http://support.esrichina-bj.cn/2009/0819/9 ...

  7. [转]使用互斥对象让程序只运行一次(delphi)

    使用互斥对象让程序只运行一次“怎么让我的程序在运行时不能重复打开?”经常在论坛上看到有朋友问这方面的问题.本文将比较详细的说明这一问题,并给出一个较为完善的解决方案. 尽管这已经不是一个新问题了,但这 ...

  8. 卡卡游戏引擎之MVC模式下的事件处理

    前言 在前一篇文章 卡卡游戏引擎快速入门中提到了卡卡游戏引擎采用mvc的开发模式,这里相信介绍一下引擎在mvc模式下是如何做到低耦合的事件处理的. 在卡卡编辑器中选择一个节点,然后在左侧工具栏中切换到 ...

  9. SGU536 Berland Chess

    棋盘上白子只有一个国王  黑子给出 各子遵从国际象棋的走法 黑子不动,白子不能走进黑子的攻击范围以内 问白字能不能吃掉所有的黑子 直接搜索就好了,各子状态用二进制表示 不过每个子被吃之后攻击范围会改变 ...

  10. 使用 AutoMapper 映射 IDataReader、DataSet、DataTable 到实体类

    AutoMapper是一个.NET的对象映射工具. 项目地址:https://github.com/AutoMapper/AutoMapper. 帮助文档:https://github.com/Aut ...