Read Uncommitted
Posted furuihua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Read Uncommitted相关的知识,希望对你有一定的参考价值。
Read Uncommitted是隔离级别最低的一种事务级别。在这种隔离级别下,一个事务会读到另一个事务更新后但未提交的数据,如果另一个事务回滚,那么当前事务读到的数据就是脏数据,这就是脏读(Dirty Read)。
我们来看一个例子。
首先,我们准备好students
表的数据,该表仅一行记录:直线电机怎么选择
mysql> select * from students;
+----+-------+
| id | name |
+----+-------+
| 1 | Alice |
+----+-------+
1 row in set (0.00 sec)
然后,分别开启两个MySQL客户端连接,按顺序依次执行事务A和事务B:
时刻 | 事务A | 事务B |
---|---|---|
1 | SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; | SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; |
2 | BEGIN; | BEGIN; |
3 | UPDATE students SET name = ‘Bob‘ WHERE id = 1; | |
4 | SELECT * FROM students WHERE id = 1; | |
5 | ROLLBACK; | |
6 | SELECT * FROM students WHERE id = 1; | |
7 | COMMIT; |
以上是关于Read Uncommitted的主要内容,如果未能解决你的问题,请参考以下文章
如何测试 MySql READ UNCOMMITTED 对 nolock 的使用
READ UNCOMMITTED 与 FOR UPDATE 的替代方法
将 READ UNCOMMITTED 与 UNION ALL 一起使用
在 READ UNCOMMITTED 事务期间使用索引导致无法获取更新锁
MySQL - READ UNCOMMITTED 隔离级别是不是使用锁?
解决“set transaction isolation level read uncommitted;“命令无法修改MySQL数据库隔离级别的问题