MySQL RR隔离 读一致性
MySQL RR 模式下 事务隔离问题: Session 1:
mysql> select * from test;
+------+------+
| id | name |
+------+------+
| NULL | a |
| 2 | b |
| 3 | c |
| 1 | a01 |
| 4 | a |
| 4 | a |
| 5 | c |
+------+------+
7 rows in set (0.00 sec) mysql> update test set name='a999' where id=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from test;
+------+------+
| id | name |
+------+------+
| NULL | a |
| 2 | b |
| 3 | c |
| 1 | a999 |
| 4 | a |
| 4 | a |
| 5 | c |
+------+------+
7 rows in set (0.00 sec) Session 2:
mysql> select * from test ;
+------+------+
| id | name |
+------+------+
| NULL | a |
| 2 | b |
| 3 | c |
| 1 | a01 |
| 4 | a |
| 4 | a |
| 5 | c |
+------+------+
7 rows in set (0.00 sec) mysql> select * from test ;
+------+------+
| id | name |
+------+------+
| NULL | a |
| 2 | b |
| 3 | c |
| 1 | a999 |
| 4 | a |
| 4 | a |
| 5 | c |
+------+------+
7 rows in set (0.00 sec) 此时没有开启事务,RR模式下 更新立即被看到 /**************************************************** Session 2开启事务: SESSION 1:
mysql> update test set name='a0101' where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from test;
+------+-------+
| id | name |
+------+-------+
| NULL | a |
| 2 | b |
| 3 | c |
| 1 | a0101 |
| 4 | a |
| 4 | a |
| 5 | c |
+------+-------+
7 rows in set (0.00 sec) 此时在查看Session 2: mysql> select * from test ;
+------+------+
| id | name |
+------+------+
| NULL | a |
| 2 | b |
| 3 | c |
| 1 | a999 |
| 4 | a |
| 4 | a |
| 5 | c |
+------+------+
7 rows in set (0.00 sec) mysql> commit;
Query OK, 0 rows affected (0.00 sec) ---需要手动提交事务 mysql> select * from test ;
+------+-------+
| id | name |
+------+-------+
| NULL | a |
| 2 | b |
| 3 | c |
| 1 | a0101 |
| 4 | a |
| 4 | a |
| 5 | c |
+------+-------+
7 rows in set (0.00 sec)
MySQL RR隔离 读一致性的更多相关文章
- mysqldump 利用rr隔离实现一致性备份
mysqldump -p -S /data/mysqldata1/sock/mysql.sock --single-transaction --master-data=2 --database db1 ...
- Mysql RR隔离更新列没有索引 会锁全表
<pre name="code" class="html">mysql> show variables like '%tx_isolation ...
- [原创]MySQL RR隔离级别下begin或start transaction开启事务后的可重复读?
Server version: 5.6.21-log MySQL Community Server (GPL) 前提提要: 我们知道MySQL的RR(repeatable read)隔 ...
- MySQL 中隔离级别 RC 与 RR 的区别
1. 数据库事务ACID特性 数据库事务的4个特性: 原子性(Atomic): 事务中的多个操作,不可分割,要么都成功,要么都失败: All or Nothing. 一致性(Consistency): ...
- Mysql(三)------事务的特性、事务并发、事务读一致性问题
1 什么是数据库的事务? 1.1 事务的典型场景 在项目里面,什么地方会开启事务,或者配置了事务?无论是在方法上加注解,还 是配置切面 <tx:advice id="txAdvice& ...
- Innodb 中 RR 隔离级别能否防止幻读?
问题引出 我之前的一篇博客 数据库并发不一致分析 有提到过事务隔离级别以及相应加锁方式.能够解决的并发问题. 标准情况下,在 RR(Repeatable Read) 隔离级别下能解决不可重复读(当行修 ...
- MySQL默认隔离级别为什么是RR
曾多次听到“MySQL为什么选择RR为默认隔离级别”的问题,其实这是个历史遗留问题,当前以及解决,但是MySQL的各个版本沿用了原有习惯.历史版本中的问题是什么,本次就通过简单的测试来说明一下. 1. ...
- MYSQL事件隔离级别以及复读,幻读,脏读的理解
一.mysql事件隔离级别 1未提交读(READUNCOMMITTED) 另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)( 隔离级别最低,并发性能高 ) 2 ...
- mysql事务隔离级别、脏读、幻读
Mysql事务隔离级别本身很重要,再加上可能是因为各大公司面试必问的缘故,在博客中出现的概率非常高,但不幸的是,中国的技术博客要么是转载,要么是照抄,质量参差不齐,好多结论都是错的,对于心怀好奇之心想 ...
随机推荐
- windows系统npm如何升级自身
其实使用npm升级各种插件是很方便的,比如我想升级express框架,使用如下命令 npm update express 如果你的express是全局安装,则 npm update -g expres ...
- NGINX+PHP+MYSQL服务器环境搭建
这条命令是配置vim的,请确保你能访问github wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh 说明有一些小问题, ...
- Ajax XMLHttpRequest对象的三个属性以及open和send方法
(1)onreadystatechange 属性onreadystatechange 属性存有处理服务器响应的函数.下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行 ...
- Python成长之路第二篇(3)_字典的置函数用法
字典的置函数用法(字典dict字典中的key不可以重复) class dict(object): """ dict() -> new empty dictionar ...
- 转——iptables详细配置
基本原理及命令使用 http://my.oschina.net/hevakelcj/blog/313212 基础知识 Linux系统内核内建了netfilter防火墙机制.Netfilter(数据包 ...
- 求绝对值,hdu-2003
求绝对值 Problem Description 求实数的绝对值. Input 输入数据有多组,每组占一行,每行包含一个实数. Output 对于每组输入数据,输出它的绝对值,要求每组数据输出 ...
- SQL Server 引起磁盘IO的原因
1. 要访问的数据不在内存中.这会引起IO 2. update/delete/insert 会把变化写入数据文件.还要记录日志 : 3. checkpoint 4. lazy writer 5. db ...
- zabbix 模版其实就是主机
</pre><pre name="code" class="python">mysql> select hostid,host , ...
- OpenStack开启sshd
修改配置sshd的文件 1. 修改sshd配置文件 /etc/ssh/sshd_config 2. 将#PasswordAuthentication no的注释去掉,并将no改为y ...
- eclipse ctrl链接设置
选择[Window]菜单 Preferences ——>General——>Editors——>Text Editors——>Hyperlinking