保姆级教程,终于搞懂脏读、幻读和不可重复读了!(7)

简介: 保姆级教程,终于搞懂脏读、幻读和不可重复读了!(7)

不可重复读演示步骤3


切换到窗口 2 中再次查询用户列表,执行结果如下:


微信图片_20220121002516.jpg


从上述结果可以看出,此时 Java 用户的余额已经变成 120 元了。在同一个事务中,先后查询的两次结果不一致就是不可重复读。


不可重复读和脏读的区别


脏读可以读到其他事务中未提交的数据,而不可重复读是读取到了其他事务已经提交的数据,但前后两次读取的结果不同。


幻读


幻读名如其文,它就像发生了某种幻觉一样,在一个事务中明明没有查到主键为 X 的数据,但主键为 X 的数据就是插入不进去,就像某种幻觉一样。幻读演示的执行流程如下:


image.png


具体执行结果如下步骤所示。


幻读演示步骤1


设置窗口 2 为可重复读,可重复有幻读的问题,查询编号为 3 的用户,具体执行 SQL 如下:


set session transaction isolation level repeatable read;
start transaction;
select * from userinfo where id=3;


以上 SQL 执行结果如下图所示:


微信图片_20220121002619.jpg


从上述结果可以看出,查询的结果中 id=3 的数据为空。

相关文章
|
SQL Java 关系型数据库
MySQL最终弹-并发(脏读,不可重复读,幻读及区别),JDBC的使用和安装,最全万字(二)
MySQL最终弹-并发(脏读,不可重复读,幻读及区别),JDBC的使用和安装,最全万字
|
Java 关系型数据库 MySQL
MySQL最终弹-并发(脏读,不可重复读,幻读及区别),JDBC的使用和安装,最全万字(一)
MySQL最终弹-并发(脏读,不可重复读,幻读及区别),JDBC的使用和安装,最全万字
MySQL最终弹-并发(脏读,不可重复读,幻读及区别),JDBC的使用和安装,最全万字(一)
|
6月前
|
SQL 关系型数据库 MySQL
分布式事物【 认识事物、脏写、脏读、不可重复读、幻读】(一)-全面详解(学习总结---从入门到深化)
分布式事物【 认识事物、脏写、脏读、不可重复读、幻读】(一)-全面详解(学习总结---从入门到深化)
129 1
分布式事物【 认识事物、脏写、脏读、不可重复读、幻读】(一)-全面详解(学习总结---从入门到深化)
|
数据库
数据库系列课程(14)-脏读、不可重复读、幻读
数据库系列课程(14)-脏读、不可重复读、幻读
51 0
|
Oracle 关系型数据库 MySQL
mysql数据库事务脏读、不可重复度、幻读详解
mysql数据库事务脏读、不可重复度、幻读详解
136 0
|
SQL 存储 NoSQL
「数据库架构」三分钟搞懂事务隔离级别和脏读
「数据库架构」三分钟搞懂事务隔离级别和脏读
图解脏读、幻读、不可重复读
图解脏读、幻读、不可重复读
75 0
|
缓存 Java 数据库
先了解清楚 脏读、不可重复读、幻读,再谈事务隔离机制
先了解清楚 脏读、不可重复读、幻读,再谈事务隔离机制
167 0
先了解清楚 脏读、不可重复读、幻读,再谈事务隔离机制
|
关系型数据库 数据库 索引
幻读是啥,会有什么问题?如何解决?
大家好,我是Leo,上篇文章大概介绍了为什么查询一条记录性能慢的原因。今天我们介绍一下幻读的一些相关知识,以及幻读相关的间隙锁,间隙锁死锁的解决方案。
幻读是啥,会有什么问题?如何解决?
保姆级教程,终于搞懂脏读、幻读和不可重复读了!(8)
保姆级教程,终于搞懂脏读、幻读和不可重复读了!(8)
145 0
保姆级教程,终于搞懂脏读、幻读和不可重复读了!(8)