东莞市品牌网站建设平台网站入口
MYSQL事务隔离级别分析
- 不可重复读和幻读的区别?
不可重复读和幻读的区别?
先理解几个概念
- 不可重复读
一个事务中,后续查询结果得到不同的数据,可被重复读隔离级别解决 - 幻影
出现在查询结果集中但不出现在较早查询的结果集中的行 - 幻读
一个事务中,先后执行两次查询,与此同时,另一个事务插入新行或更改行后提交,出现的数据不一致情况,比不可重复读更难防范,因为锁定第一个查询中的所有行无法阻止导致幻读出现的更改
再来看区别
- 很相似
- 前后两次查询看到的数据情况不一致
- 场景会有些不同
-
不可重复读
一般针对单行数据
可被可重复读隔离级别解决 -
幻读(除了序列化隔离级别外,都存在)
一般针对多行数据,范围查询
无法被可重复度隔离级别解决