Mysql 脏读

173 阅读1分钟

       脏读指的是在不同的事务下,当前事务可以读到另外事务未提交的数据,简单来说就是可以读到脏数据。

测试环境 Mysql8.0.19

开启两个终端连接mysql,分别执行

set @@transaction_isolation='READ-UNCOMMITTED';
set autocommit = 0;
begin;

设置mysql事务隔离级别为读未提交,关闭自动提交模式,开启事务。先查询数据库数据,然后把第一条数据从999更新为900,截图如下:

第二个连接查看事务未提交状态下第一条数据的值,虽然终端1事务还没提交,但终端2已经可以看到最新数据, 截图如下

此时再次修改终端2隔离级别为读已提交,再次查看数据,还是之前的数据,截图如下:

终端1提交事务,两个终端统一为最新值,截图如下: