REPEATABLE READ

This is the default isolation level for InnoDB. For consistent reads, there is an important 

difference from the READ COMMITTED isolation level: All consistent reads within the same 

transaction read the snapshot established by the first read. This convention means that if you 

issue several plain (nonlocking) SELECT statements within the same transaction, these SELECT 

statements are consistent also with respect to each other. See Section 14.3.2.3, “Consistent 

Nonlocking Reads”.

这是默认的隔离级别是InnoDB,对于一致性读,这里有一个重要的区别和READ COMMITTED isolation level

所有的一致性读在相同的事务里读取第一次读创建的快照。

这意味着如果你执行多个普通的(非锁定读) 

SELECT 语句在相同的实例,SELECT 语句是一致性读。

For locking reads (SELECT with FOR UPDATE or LOCK IN SHARE MODE), UPDATE, and DELETE 

statements, locking depends on whether the statement uses a unique index with a unique search 

condition, or a range-type search condition. For a unique index with a unique search condition, 

InnoDB locks only the index record found, not the gap before it. For other search conditions, 

InnoDB locks the index range scanned, using gap locks or next-key locks to block insertions by 

other sessions into the gaps covered by the range.

对于lockding reads(SELECT  FOR UPDATE or LOCK IN SHARE MODE),

UPDATE, and DELETE语句, lockding 依赖是否语句使用一个唯一索引进行一个唯一搜索条件,

或者一个range-type 搜索条件,  对于一个唯一索引 使用一个唯一搜索条件,

InnoDB 只锁 找到的index record,不是 gap before it.

对于其他的搜索条件,InnoDB locks 定索引范围扫描,使用gap locks 或者next-key locks 

来堵塞 其他会话插入到这个区间

READ COMMITTED

一个Oracle 类似的隔离级别一致的非锁定读,

每个一致读, 甚至在相同的会话,设置和读取它自己最新鲜的快照

对于锁定读(SELECT with FOR UPDATE or LOCK IN SHARE MODE),

UPDATE statements, and DELETE statements

InnoDB 只锁定 index records,不是 gaps before them,

因此允许新记录自由插入到紧挨着锁定的记录

Mysql rr和rc隔离的更多相关文章

  1. mysql rr和rc区别

    <pre name="code" class="html">1. 数据库事务ACID特性 数据库事务的4个特性: 原子性(Atomic): 事务中的 ...

  2. RR 和RC隔离问题

    Sesssion 1: mysql> select @@tx_isolation; +-----------------+ | @@tx_isolation | +--------------- ...

  3. 一文彻底读懂MySQL事务的四大隔离级别

    前言 之前分析一个死锁问题,发现自己对数据库隔离级别理解还不够清楚,所以趁着这几天假期,整理一下MySQL事务的四大隔离级别相关知识,希望对大家有帮助~ 事务 什么是事务? 事务,由一个有限的数据库操 ...

  4. 【MySQL 读书笔记】RR(REPEATABLE-READ)事务隔离详解

    这篇我觉得有点难度,我会更慢的更详细的分析一些 case . MySQL 的默认事务隔离级别和其他几个主流数据库隔离级别不同,他的事务隔离级别是 RR(REPEATABLE-READ) 其他的主流数据 ...

  5. MySQL--事务隔离级别RR和RC的异同

    在MySQL中,事务隔离级别RC(read commit)和RR(repeatable read)两种事务隔离级别基于多版本并发控制MVCC(multi-version concurrency con ...

  6. [原创]MySQL RR隔离级别下begin或start transaction开启事务后的可重复读?

    Server version:         5.6.21-log MySQL Community Server (GPL) 前提提要: 我们知道MySQL的RR(repeatable read)隔 ...

  7. MySQL RR隔离 读一致性

    MySQL RR 模式下 事务隔离问题: Session 1: mysql> select * from test; +------+------+ | id | name | +------+ ...

  8. RR 和RC 幻读问题

    <pre name="code" class="html">显然 RR 支持 gap lock(next-key lock),而RC则没有gap l ...

  9. mysql RR下不存在则插入

    主要看并发事务中不存在则插入(只有key索引)的阻塞情况. 表定义: mysql> desc user; +-------------+------------------+------+--- ...

随机推荐

  1. C++ vs.net设置UTF8字符

    1.将main.cpp改成utf-8编码,方法是点击main.cpp,然后选择菜单文件->高级保存选项.[所有源码都要转换成uft-8] 2.在你的main函数里,设置如下代码,完美解决qt5的 ...

  2. J2EE应用服务器计数器

    常用的J2EE应用服务器包括Weblogic.WebSphere和Tomcat等,以下是以WebLogic为例给出的计数器. 类别 计数器名称 计数器描述 JVM Heap Size JVM堆大小,该 ...

  3. CentOS 6.2 二进制安装apache2.4.3出现configure: error: APR-util not found. Please read the documentation的解决方

    CentOS 6.2 二进制安装apache2.4.3出现configure: error: APR-util not found. Please read the documentation的解决方 ...

  4. php的var关键字

    public和var的作用差不多 因为 var定义的变量如果没有加protected 或 private则默认为public php4 中一般是用 varphp5 中就一般是用 public了 现在基 ...

  5. Android Branch and master source code merge(patch)

    Environment : Android 4.4.2 merge with Android 4.4.3(with other vendors source code) 1.确定你要merge 到 其 ...

  6. boost::asio 连接管理11 如何关闭连接

    在实际产品运行中,对连接管理有了更新的认识,这里分享一下. shared_ptr管理连接对象的生命周期 shared_ptr的引用计数器决定了连接对象的生命周期.这里我说的连接对象就是在我的前文:ht ...

  7. 如何在Linux上检查SSH的版本(转)

    SSH协议规范存在一些小版本的差异,但是有两个主要的大版本:SSH1 (版本号 1.XX) 和 SSH2 (版本号 2.00). 事实上,SSH1和SSH2是两个完全不同互不兼容的协议.SSH2明显地 ...

  8. Linux Crontab 定时任务使用总结

    任务调度的crond常用命令 crond 是linux用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便 ...

  9. 让工程师爱上CMM,实现管理于无形 --- 中标软件CMMI L5之路 (2/2)

    上节:见 http://blog.csdn.net/sztiger168/article/details/9142069 使用 青铜器RDM在2011年正式在中标软件上线,将研发业务全面流程化,完全支 ...

  10. 适用函数ALSM_EXCEL_TO_INTERNAL_TABLE把excel文件传输到内表中

    FM:ALSM_EXCEL_TO_INTERNAL_TABLE 是上载Excel文件的一个函数,但是这个函数有两个限制. 一是每个CELL只能导入前50个字符,二是如果超过9999行,行号会初始化为从 ...