zoukankan      html  css  js  c++  java
  • 数据库事务级别

    事务四个特性ACID

    Atomicity 原子性

    Consistency 一致性

    Isolation 隔离性

    Durability 持久性

    数据库在高并发下会产生三个问题, 有并发事务A,B

    脏读: A读取了B未提交的数据,

    不可重复读:A第一次查询数据,B更新数据并提交,A第二次查询,读出B更新后的数据,导致两次查询不一致

    幻读:A查询数据库,B新增或删除数据,A第二次查询数据不一致

    为解决这三个问题,数据库设置四个隔离级别

    READ_UNCOMMITED: 允许脏读,不可重复读,幻读

    READ_COMMITED:不允许脏读

    REPEATABLE_READ:不允许脏读,不可重复读

    SERIALIZABLE:都不允许

    Spring  七种事务传播属性

    PROPAGATION_REQUIRED :没有事务就新建,有就加入到当前事务中

    PROPAGATION_NEW:没有事务就新建,有事务挂起当前事务,新开一个事务。如果methodA调用methodB,B查到A中事务,挂起A事务,新开另一事务,A,B此时是独立的两个事务,即B提交后A回滚也不会影响B。

    PROPAGATION_SUPPORT :有事务就以事务方式运行,没有事务就以非事务方式运行。

    PROPAGATION_NOT_SUPPORT:没有事务就以非事务方式运行,有事务就挂起当前事务,以非事务方式运行。

    PROPAGATION_MANDATORY:有事务加入当前事务,没有事务抛出异常

    PROPAGATION_NEVER :有事务抛出异常,没有事务正常运行。

    PROPAGATION_NEST:没有事务就新建,有事务就嵌套一个事务,如果methodA调用methodB,A中有事务,B中回滚不会影响A,A方法继续执行,如果A回滚会连带B一起回滚。即外层事务失败时,会回滚内层事务所做的动作。而内层事务操作失败并不会引起外层事务的回滚

  • 相关阅读:
    浅析数据库安全技术
    本站快捷付款方式
    VMware Workstation 官方正式版及激活密钥
    Win10真正好用之处
    我眼中的CentOS 下 安全策略
    美团
    Tomcat connector元素常用配置(最大连接数等)
    9.22面经:
    9.7
    合并两个有序数组为一个新的有序数组
  • 原文地址:https://www.cnblogs.com/tangyuanyuan/p/7825420.html
Copyright © 2011-2022 走看看