zoukankan      html  css  js  c++  java
  • Spring事物管理(一)

     

    SQL的四种隔离级别

    Read_Uncommitted(读未提交)   隔离级别最低,并发性高,也称脏读。

    ②Read_Committed(读已提交) 大多数数据库默认隔离级别(不包括MySQL)。

    ③Repeatable_Read (可重复度) MySQL默认隔离级别。保证同一事物的多个实例在并发读取数据时,会看到同样的数据行。

    ④Serializable(可串行化) 隔离级别最高,他通过强制事物排序,使之不能相互冲突。

     

     

    三种数据库默认隔离级别

    SQL Server 读已提交

    Oracle    读已提交

    MySQL   可重复度

     

    脏读:某个事物已更新一份数据,另一事物在此时读取了同一份数据,由于某些原因,前者回滚了,则另一事物所读取的数据就不正确。

     

    不可重复读:在一个事物的两次查询的数据不一致。

     

    幻读:在一个事物的两次查询的数据行不一致。

     

     

     

    修改事物权限的语句

    SET [GLOBAL|SESSION] TRANSACTION ISOLATION LEVEL [Read_Uncommitted|Read_Committed|Repeatable_Read|SERIALIZABLE]
    

      

    查询现有隔离级别

    SHOW VARIABLES LIKE 'tx_isolation'
    

      

    查询全局事物隔离级别

    SHOW GLOBAL VARIABLES LIKE 'tx_isolation'
    

      

     事物的七种传播行为

    1、PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。

    2、PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。‘

    3、PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。

    4、PROPAGATION_REQUIRES_NEW:创建新事务,无论当前存不存在事务,都创建新事务。

    5、PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

    6、PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。

    7、PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。

     

     

     

     

  • 相关阅读:
    Ubuntu下speedtest的安装
    Ubuntu下快速安装LAMP server
    用python3.3爬取图片
    用python3.3结合snmpget截取信息
    开源数据库Postgresql的备份和恢复
    vuedraggable 两个不同结构的数组之间拖拽
    MyBatis 使用另一个 mapper 中的 resultMap 和 sql
    怎样处理从后台传来大量数据的分页操作
    doc命令操纵数据库
    (全)Mac中mysql的root账户初始密码忘记解决办法以及更改
  • 原文地址:https://www.cnblogs.com/xuchangqi1/p/8581056.html
Copyright © 2011-2022 走看看