您现在的位置是:网站首页>列表内容
Mysql事务并发脏读+不可重复读+幻读详解_Mysql_
2023-05-27 06:04:17
54人已围观
简介 Mysql事务并发脏读+不可重复读+幻读详解_Mysql_
Mysql的事务隔离级别
Mysql有四种事务隔离级别,这四种隔离级别代表当存在多个事务并发冲突时,可能出现的脏读、不可重复读、幻读的问题。
脏读
大家看一下,我们有两个事务,一个是 Transaction A,一个是 Transaction B,在第一个事务里面,它首先通过一个 where id=1 的条件查询一条数据,返回 name=Ada,age=16 的这条数据。然后第二个事务呢,它同样地是去操作 id=1 的这行数据,它通过一个 update 的语句,把这行 id=1 的数据的 age 改成了 18,但是大家注意,它没有提交。这个时候,在第一个事务里面,它再次去执行相同的查询操作,发现数据发生了变化,获取到的数据 age 变成了 18。那么,这种在一个事务里面,由于其他的时候修改了数据并且没有提交,而导致了前后两次读取数据不一致的情况,这种事务并发的问题,我们把它定义成脏读。
不可重复读
同样是两个事务,第一个事务通过 id=1 查询到了一条数据。然后在第二个事务里面执行了一个 update 操作,这里大家注意一下,执行了 update 以后它通过一个 commit提交了修改。然后第一个事务读取到了其他事务已提交的数据导致前后两次读取数据不一致的情况,就像这里,age 到底是等于 16 还是 18,那么这种事务并发带来的问题,我们把它叫做不可重复读。
幻读
在第一个事务里面我们执行了一个范围查询,这个时候满足条件的数据只有一条。在第二个事务里面,它插入了一行数据,并且提交了。重点:插入了一行数据。在第一个事务里面再去查询的时候,它发现多了一行数据。
一个事务前后两次读取数据数据不一致,是由于其他事务插入数据造成的,这种情况我们把它叫做幻读。
总结
不可重复读是修改或者删除,幻读是插入。 无论是脏读,还是不可重复读,还是幻读,它们都是数据库的读一致性的问题,都是在一个事务里面前后两次读取出现了不一致的情况。
到此这篇关于Mysql事务并发脏读+不可重复读+幻读详解的文章就介绍到这了,更多相关Mysql事务并发内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
点击排行
- 神鬼寓言3有哪些魔法 各魔法介绍_单机游戏_游戏攻略_
- 狙击精英3游戏已停止工作为什么?狙击精英3游戏已停止工作怎么办?_单机游戏_游戏攻略_
- 狙击精英3第五章过关方法介绍 狙击精英3第五章怎么过?_单机游戏_游戏攻略_
- 勇敢的心世界大战安娜救人怎么过? 勇敢的心世界大战安娜救人如何完成?_单机游戏_游戏攻略_
- 黑暗之魂2狂战士怎么刷? 黑暗之魂2狂战士刷法攻略_单机游戏_游戏攻略_
- 植物大战僵尸花园战争豪华版内容如何获得?_单机游戏_游戏攻略_
- 金庸群侠传X怎么刷炼狱专属装备?刷炼狱专属装备方法攻略介绍_单机游戏_游戏攻略_
- 光线先生怎么玩 光线先生攻略技巧介绍_单机游戏_游戏攻略_
- 生存战争开局生存指南及一些常识_单机游戏_游戏攻略_
本栏推荐
-
神鬼寓言3有哪些魔法 各魔法介绍_单机游戏_游戏攻略_
-
狙击精英3游戏已停止工作为什么?狙击精英3游戏已停止工作怎么办?_单机游戏_游戏攻略_
-
狙击精英3第五章过关方法介绍 狙击精英3第五章怎么过?_单机游戏_游戏攻略_
-
勇敢的心世界大战安娜救人怎么过? 勇敢的心世界大战安娜救人如何完成?_单机游戏_游戏攻略_
-
黑暗之魂2狂战士怎么刷? 黑暗之魂2狂战士刷法攻略_单机游戏_游戏攻略_
-
植物大战僵尸花园战争豪华版内容如何获得?_单机游戏_游戏攻略_
-
金庸群侠传X怎么刷炼狱专属装备?刷炼狱专属装备方法攻略介绍_单机游戏_游戏攻略_
-
光线先生怎么玩 光线先生攻略技巧介绍_单机游戏_游戏攻略_
-
生存战争开局生存指南及一些常识_单机游戏_游戏攻略_