• MySQL 事务



    事务的特性:

    • 原子性:不可再分,要不都做,要不都不做
    • 隔离性:事务相互之间是不可见的
    • 持久性:事务一但提交,服务器岩机也是可以恢复
    • 一致性:事务的操作不会改变数据的状态,譬如,数据一致性

    事务的类别:

    • 扁平事务

    所有操作都处于同一层次,其由BEGIN WORK 开始,由COMMIT WORK或ROLLBACK WORK结束,其间的操作都是源自的,要么执行,要么都回滚,因此扁平事务是应用程序为原子操作的基本组成模块

    • 带有保存点的扁平事务

    除了支持扁平事务支持的操作外,允许在事务执行过程中回滚同一事务中较早的一个状态。

    隐式的设置了一个保存点

    • 链事务

    在提交一个事务时,释放不需要的数据对象,将必要在处理上下文隐式地传给下个要开始的事务,提交事务和开始事务操作将合并为一个原子操作

    这意味着下一个事务将看到上一个事务的结果,就好像一个事务中进行的一样

    与带有保存点的扁平事务不同的是:带有保存点的扁平事务能回滚到任意正确的保存点,而链式事务只能回滚到最近的一个保存点

    • 嵌套事务

    1 嵌套事务是由若干事务组成的一棵树,子树既可以是嵌套事务也可以是扁平事务
    2 处在叶节点的事务是扁平事务,但是每个事务从根到叶节点的距离可以说是不同的
    3位于根节点的事务称为顶层事务,其他称为自事务。事务的前驱称(predecessor)为父事务(parent),事务的下一层称为儿子事务(child)
    4 子事务既可以提交也可以回滚。但是它的提交操作并不马上生效。除非其父事务已经提交。因此可以推论出,任何子事务都在顶层事务提交后才真正的提交
    5 树中的任意事务回滚会引起它的所有子事务一同回滚,故子事务仅保留ACI特性而不具有D特性

    • 分布式事务

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

    隔离级别:

    • 读取未提交内容(脏读):事务A读取了事务B更新的数据,然后事务B回滚操作,那么事务A读取的数据是脏数据
    • 读取提交内容(不可重复读):事务A多次读取同一数据,事务B在事务A多次读取的过程中对数据进行了修改,导致多次读取的数据不一致
    • 可重读(幻读):它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行
    • 可串行化:这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争
  • 相关阅读:
    python学习笔记(unittest)
    python学习笔记(session)
    python学习笔记(requests)
    jmeter的学习(配置环境)
    Codeforces 576D. Flights for Regular Customers 题解
    Codeforces 1316F. Battalion Strength 题解
    2020年第十一届蓝桥杯省赛J-网络分析(带权并查集)
    第十一届蓝桥杯b组省赛 C.合并检测(内附详细的样例)
    蓝桥杯2020.7月真题走方格(到达终点的不同方案数)(记忆化搜索+DP)
    Codeforces Global Round 11 A. Avoiding Zero(思维构造)
  • 原文地址:https://www.cnblogs.com/mikechang/p/13207106.html
Copyright © 2020-2023  润新知