程序员社区

【Spring学习及总结24】演示事务的隔离级别

文章目录

      • 1.事务的隔离级别
        • 1.读未提交(read uncommitted)
        • 2.读已提交(read committed)
        • 3.可重复读( repeatable read)

1.事务的隔离级别

1.读未提交(read uncommitted)

首先先利用DOS窗口开启一个事务1,并设置此会话的事务隔离级别为读未提交
读未提交:当前事务能够读取到另一个事务没有提交的数据
在这里插入图片描述
利用DOS窗口再次开启一个事务2,对数据price进行修改
在这里插入图片描述
利用事务1再次查询price,发现事务1读到了事务2没有提交的数据,造成脏读。
在这里插入图片描述

2.读已提交(read committed)

首先开启一个事务1,设置事务的隔离级别为读已提交
读已提交:能够读取到其他事务已经提交的数据
在这里插入图片描述
现在开启另一个事务2,修改price的值,但是不提交
在这里插入图片描述
当事务2没有提交时,事务1读取不到事务2更改后的数据
在这里插入图片描述
当事务2的事务提交以后,事务1能够读取到事务2更改后的数据:
在这里插入图片描述
在这里插入图片描述
由读取到的数据可以看出,每次读取到的数据不同,造成不可重复读。
在这里插入图片描述

3.可重复读( repeatable read)

首先开启一个事务1,mysql默认的事务隔离级别为可重复读
可重复读:即使事务2更改了数据,并且提交了,事务1也读取不到,读取到的仍然是原来的数据。
在这里插入图片描述
开启另一个事务2,事务3将price更改为400,当时未提交,此时事务1,可以避免脏读
在这里插入图片描述
将事务2提交,此时事务1可以避免可重复读
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【Spring学习及总结24】演示事务的隔离级别

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区