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

  • 相关阅读:
    HUST第八届程序设计竞赛-G小乐乐打游戏(双bfs)
    HDU-1575-Tr A(矩阵快速幂模板)
    HDU-1061-Rightmost Digit (快速幂模板)
    HihoCoder 1142-三分求极值(三分模板)
    Aizu ITP2_6_A(二分模板)
    Codeforces-938D-Buy a Ticket(最短路设虚拟节点+Dijk优先队列优化)
    POJ-1797-Heavy Transportation(最短路变形)
    HDU-5137-How Many Maos Does the Guanxi Worth(最短路删点)
    POJ-1094-Sorting It All Out (拓扑排序)(判断环和排名是否唯一)
    HDU-1869-六度分离(多源到多源最短路)
  • 原文地址:https://www.cnblogs.com/xiaoit/p/4552249.html
Copyright © 2020-2023  润新知