一、READ UNCOMMITTED(未提交读)

    在READ UNCOMMITTED级别,事务中的修改,即使未提交,对其他事务也都是可见的。事务可以读取未提交的数据,这也被称为脏读( Dirty READ )。这个级别会导致很多问题。从性能上来说,READ UNCOMMITTED不会比其他级别好太多,但是缺乏其       他级别的很多好处,除非真的有非常必要的理由,否则在实际开发中,一般很少使用。

  

  二、READ COMMITTED(提交读)

    大多数数据库系统默认的隔离级别都是READ COMMITTED,但是MySQL不是。READ COMMITTED满足个理性的简单定义:一个事务开始时,只能“看见”已经提交的事务所作的修改。换句话说,一个事务在开始到提交之前,所做的任何修改对其它事务是不       可见的。这个级别有时候也叫不可重复读(nonrepeatable),因为两次执行同样的查询,可能会得到不同的查询结果。

  三、REPEATABLE READ(可重复读,MySQL默认隔离级别)

    这个是MySQL默认的隔离级别。REPEATABLE READ解决了脏读的问题。该级别保证了在同一个事务中多次读取同样记录的结果是一致的。但是在理论上,REPEATABLE READ隔离级别无法解决另外一个幻读(Phantom Read)的问题。所谓幻读,指的是当        某个事务在读取某个范围内的记录时,另外一个事物又在该范围内插入了新的记录。当之前的事务再次读取该范围内的记录时,会产生幻行(Phantom Row)。InnoDB和XtraDB存储引擎通过多版本冰法控制(MVCC,  Multiverson Concurrency Control)解决了幻        读问题。

  四、SERIALIZABLE(可串行化)

    SERIALIZABLE是最高的隔离级别。他通过强制事务串行执行,避免了前面说的幻读问题。简单来说,SERIALIZABLE会在读取的每一行数据上都加锁,所以可能导致大量的超时和锁争用问题。实际应用中也很少用到这个隔离级别,只有在非常需要全确保数         据的一致性而且可以接受没有并发的情况下,才考虑采用该级别。

                                                    表格归纳如下:

ANSI  SQL隔离级别
隔离级别 脏读可能性 不可重复读可能性 幻读可能性 加锁度
 READ UNCOMMITTED  YES     YES  YES  NO 
READ COMMITTED  NO   YES  YES NO 
 REPEATABLE READ NO  NO  YES  NO 
 SERIALIZABLE NO   NO  NO  YES

   
 

mysql的四种隔离级别的更多相关文章

  1. mysql事务四种隔离级别

    事务的基本要素:原子性,一致性,隔离性,持久性. 事务并发问题:脏读,不可重复读,幻读. mysql隔离级别:read-uncommitted,read-committed,repeatable-re ...

  2. MySQL 四种隔离级别

    什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结束有 ...

  3. MySql四种隔离级别

    什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结束有 ...

  4. 面试问烂的 MySQL 四种隔离级别,看完吊打面试官!

    阅读本文大概需要 5.6 分钟. 来源:网络 什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操 ...

  5. MySQL 四种隔离级别详解,看完吊打面试官

    转发链接:https://zhuanlan.zhihu.com/p/76743929 什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就 ...

  6. MySQL面试题--常见的四种隔离级别

    什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结束有 ...

  7. MySQL 的 4 种隔离级别,你了解么?

    1.什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做.事务的结束 ...

  8. 【转载】mysql 四种隔离级别分析

    sql标准中,有四种隔离级别,各个离级别都有各自的规则,隔离级别越低,允许并发越大,消耗的资源越少,但是越不安全,下面就mysql数据库来分别介绍一下(每个存储引擎实施的隔离级别会有稍微的不同)mys ...

  9. SQL事务的四种隔离级别和MySQL多版本并发控制

      SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的那些改变时可见的,那些是不可见的.低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销. ReadUncommitted( ...

随机推荐

  1. Log4Net 的简要配置

    引用log4net.dll AssemblyInfo.cs中 [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyF ...

  2. Measuring Lengths in Baden

    Description Measuring Lengths in Baden time limit per test: 2 seconds memory limit per test: 256 meg ...

  3. HDU 1172 猜数字(DFS)

    猜数字 Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...

  4. H5+Boostrap的音乐播放器

    H5+Boostrap做简单的音乐播放器 前言:这个是综合一下我最近在学的东西做的小Demo,到实际使用还有距离,但是用来练手巩固知识点还是不错的,最近在二刷JS书和Boostrap.css的源码,做 ...

  5. 解决Webservice内存溢出

    public class FileExercise : System.Web.Services.WebService { [WebMethod] public void HelloWorld() { ...

  6. css显示省略号

    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;  <!-- 就这三句,,,嘿嘿....->

  7. USBASP下载线制作教程

  8. Keil C -WARNING L15: MULTIPLE CALL TO SEGMENT

    1.第一种错误信息 ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?_WRITE_GMVLX1_REG?D_GMVLX1 CALLER1: ...

  9. mysql logstash 配置

    [elk@dr-mysql01 mysql]$ cat logstash_mysql.conf input { file { type => "zj_mysql" path ...

  10. 【转】Android下编译jni库的二种方法(含示例) -- 不错

    原文网址:http://blog.sina.com.cn/s/blog_3e3fcadd01011384.html 总结如下:两种方法是:1)使用Android源码中的Make系统2)使用NDK(从N ...