设为首页 加入收藏

TOP

MySQL RR隔离级别下begin或start transaction开启事务后的可重复读?
2017-02-21 08:15:49 】 浏览:5779
Tags:MySQL 隔离 级别 begin start transaction 开启 事务 后的可 复读

Server version:? ? ? ? 5.6.21-log MySQL Community Server (GPL)


前提提要:


我们知道MySQL的RR(repeatable read)隔离级别下,事务无法看到正在活跃的事务所做的操作包括提交后的。


一般手动开启事务的命令是begin或start transaction;我以前的理解是一旦执行这条语句就已经开启了事务,也就是事务id已经生成(可用于MVCC版本比较)。如果事务A和事务B一起执行begin,事务A的所有操作的提交事务B都看不到;


事实是否定的;


环境:



实验结果是:事务B在未提交和为回滚的情况下,看到了事务A提交的数据;


一旦begin命令之后紧跟着select语句就开启了事务;或者以start transaction with consistent snapshot开始事务,就无法看到事务A提交的数据;


也就是实现了非锁定一致性读;



结论:通过命令begin;start transaction;开始事务,实际上并没有达到完全的可重复读;


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL innodb_rollback_on_timeou.. 下一篇MySQL 中隔离级别 RC 与 RR 的区别

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目