zoukankan      html  css  js  c++  java
  • 数据脏读-非重复读-幻读

    1,脏读:(读取了还未提交的数据

      A事务正在执行行数据修改,还未提交到数据库;

      B事务此时访问行数据直接取用了还未提交的修改;

      解决:A事务未提交前,不允许其他事务访问A事务修改内容

    2,不可重复读: (修改:同样的数据再次读取数据发生改变

      A事务多次读取同一行数据,还未读取结束;

      B事务此时修改了行数据,导致A事务多次读取的数据不一致;

      解决:B事务修改操作提交之后,在进行读取操作

    3,幻读:(新增删除:同样的数据再次读取数量发生改变

      A事务修改所有行数据,还未提交;

      B事务此时插入新的行数据,A操作发现还有未修改的行数据(B事务插入操作)

      解决:A事务修改提交后,在进行其他操作新增删除等操作

    4,丢失更新:(修改:更新内容丢失

      A事务和B事务同时修改同一行数据,出现A事务修改内容丢失,修改内容变成B事务修改内容;

      解决:进行行加锁,只允许并发一个更新事务

    基于元数据的 Spring 声明性事务 :

    Isolation 属性一共支持五种事务设置,具体介绍如下:

    l          DEFAULT 使用数据库设置的隔离级别 ( 默认 ) ,由 DBA 默认的设置来决定隔离级别 .

    l          READ_UNCOMMITTED 会出现脏读、不可重复读、幻读 ( 隔离级别最低,并发性能高 )

    l          READ_COMMITTED  会出现不可重复读、幻读问题(锁定正在读取的行)

    l          REPEATABLE_READ 会出幻读(锁定所读取的所有行)

    l          SERIALIZABLE 保证所有的情况不会发生(锁表)

      

  • 相关阅读:
    docker 安装部署 mysql(配置文件启动)
    mac Charles抓包
    docker 安装部署 redis(配置文件启动)
    安装mysql5.6
    Linux命令
    git命令汇总
    Java程序占用的内存可能会大于Xmx
    排序
    二分查找
    Elasticsearch核心技术(一):Elasticsearch环境搭建
  • 原文地址:https://www.cnblogs.com/wanhua-wu/p/6655631.html
Copyright © 2011-2022 走看看