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数据库隔离级别的问题