zoukankan      html  css  js  c++  java
  • mysql事务隔离级别

    概念

    隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一定的影响作用。

    脏读:读取未提交的数据;

    不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间另外的事务修改了符合条件的数据;

    幻读(Phantom Read):在一个事务的两次查询中数据行数不一致,这可能是两次查询过程中另外的事务对表做了insert或者delete操作;

    注意:不可重复读和幻读的区别。两者都是数据不一致,前者是同一事务中两次查询,结果的数据行数一样,具体某些行的某些列数据不一样;后者指的是同一事务中,前后两次查询结果的行数不一样(两次查询期间另外的事务执行了insert或者update)。

    为什么要分成两种形式呢,控制机制不一样。对于前者, 只需要锁住满足条件的记录即可。对于后者,要锁住满足条件及其相近的记录甚至整个表。

    Read Uncommitted(未提交读):在该隔离级别,所有事务都可以看到其他未提交事务的执行结果,即允许读取脏数据;
    Read Committed(已提交读):这是大多数数据库系统的默认隔离级别(SQL SERVER的默认隔离级别,但不是MySQL默认的),定义:一个事务只能看见已经提交事务所做的改变;
    Repeatable Read(可重复读):这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行;
    Serializable(可串行化):这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。

  • 相关阅读:
    STL 清除模板容器 clear.h
    建立ORACLE10G DATA GUARD--->Physical Standby
    WWDC 2014 Session 205/217 Extension 注意事项
    Android 布局管理器
    软件测试的基本方法(五岁以下儿童)单元测试
    HDU 4896 Minimal Spanning Tree(矩阵高速功率)
    泛泰A860(高通公司8064 cpu 1080p) 拂4.4中国民营recovery TWRP2.7.1.2文本(通过刷第三版)
    Android L SDK -- 一些有趣的新功能
    Jquery在线咨询地址
    项目开发录制两个
  • 原文地址:https://www.cnblogs.com/shizheyangde/p/7389624.html
Copyright © 2011-2022 走看看