zoukankan      html  css  js  c++  java
  • MySQL事物系列:1:事物简介

    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特性,要么都发生,要么都失效。

  • 相关阅读:
    SQL Server 2k5数据挖掘功能介绍
    SQL 链接字符串
    【javascript】收藏本站——添加到浏览器收藏夹
    【转】web 前端研发工程师编程能力飞升之路
    【javascript】cookie 的应用——记住用户名
    【css】谈谈 css 的各种居中——读编写高质量代码有感
    【javascript】图片左右滚动(可自动,有左右按钮)
    【转】ie6 png 透明终极解决方案
    【css3】一款可以让 ie 支持 css3 的插件
    【html】web 入门者必看的 html 代码编写的 30 条军规
  • 原文地址:https://www.cnblogs.com/xiaoit/p/4552249.html
Copyright © 2011-2022 走看看