码迷,mamicode.com
首页 > 数据库 > 详细

MySQL的幻读实验

时间:2020-09-17 23:33:43      阅读:35      评论:0      收藏:0      [点我收藏+]

标签:查询   了解   隔离   性问题   sql   就是   破坏   问题   插入   

幻读指的是一个事物在两次查询同一范围的时候,后一次查询看到了前一次查询没有看到的行。

在可重复读隔离级别下,普通的查询时快照读,是不会看到别的事务插入的数据的。 因此,幻读在当前读下才会出现。

幻读仅专指新插入的行。

select 加了for update,这就是当前读。当前读的规则就是要能读到所有已经提交的记录的最新值。

幻读破坏了加锁的语义,而且带来了数据一致性问题。 一致性包括,数据库内部数据状态的一致性、数据与日志在逻辑上的一致性。

幻读产生的原因是:行锁只能锁住行,但是,新插入记录这个动作,要更新的是记录之间的 “间隙”。 因此,为了解决这个问题,InnoDB引入了间隙锁。

 

MySQL的幻读实验

标签:查询   了解   隔离   性问题   sql   就是   破坏   问题   插入   

原文地址:https://www.cnblogs.com/wanmeishenghuo/p/13660285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!