14.2.2.5 幻象读

原创 2015年11月18日 15:25:52

所谓的幻象读发生在事务当相同的查询产生不同的结果集在不同的时间,比如

如果SELECT 执行两次,但是第2次返回和第一次返回时不相等的,这个记录称为 幻象行。

假设 这里有一个index 在child 表的id列,你需要读和lock 所有的记录 值大于100,

意向更新一些列在选择的记录后。

SELECT * FROM child WHERE id > 100 FOR UPDATE;

查询扫描index 从第一个记录 id是大于100开始。 如果表包含记录有id值在90和102.

如果locks 设置在index records 在扫描范围 不允许插入在gaps 区间(在这种情况下, gap 区间是90到102)

另外的会话是插入一个新的记录到表 值为101.

如果你执行相同的SELECT 在相同的事务里,你会看到一个一个新的记录id=101(一个幻读)

查询返回的结果。如果我把一组数据集称为数据项,

新的幻象child 会违反事务的隔离机制,一个事务可以运行在它的事务期间数据没有改变。

为了防止幻读,InnoDB 使用一个算法称为next-key locking 组合index-row locking 和gap locking.

InnoDB 执行row-level locking 以这样的方式 当它搜索或者扫描一个表的索引,

它设置共享的或者排它锁 在index records 它遇到的。因此,row-level locks 实际是index-record locks.

因此,一个next-key lock 在一个index record locks 也影响”gap” 在那个index record.

也就是说,一个next-key lock 是一个Index-record lock 加上一个gap lock 在gap index record 之前。

如果一个会话有一个共享锁或者排它锁在记录R,另外的会话不能插入一个新的index record 在这个区间

立即在R 顺序前。

当InnoDB 扫描索引时,它可以锁住区间在最后的记录 在索引里,就像前面发生的例子:

为了防止任何的插入 ,id值大于100, InnoDB设置的locks 包括一个lock 在区间。

你可以使用next-key locking 来应用一个唯一检查在你的应用。

如果你读你的数据在共享模式和不会看到重复对于一条你要插入的记录,

你可以安全的插入你的记录和知道next-key lock 设置在你的记录的继承者 在读阻止任何其他插入一个重复值。

相关文章推荐

(四)MySQL InnoDB锁类型及幻象读问题

MySQL InnoDB锁类型及幻象读问题 (一)MySQL InnoDB事务模型 (二)MySQL InnoDB锁模型 (三)MySQL InnoDB非锁定一致性读与锁定读 (四)MySQL Inn...

数据库脏读、不可重复读、幻象读

数据库的事务隔离级别(TRANSACTION ISOLATION LEVEL)是一个数据库上很基本的一个概念。为什么会有事务隔离级别,SQL Server上实现了哪些事务隔离级别?事务隔离级别的前提是...
  • JIESA
  • JIESA
  • 2015年11月03日 10:32
  • 1131

全息幻象互动系统介绍

  • 2008年06月03日 11:32
  • 1.5MB
  • 下载

常见的麦克风供电方式总结(幻象供电)

幻象供电 Phantom Power 幻象供电方式是现今专业麦克风领域最常用的供电方式。幻象供电这种方式是由电报工程师发明的。他们利用平衡传输线作为一条导体,大地作为另一个导体构成一个信号回路,这种方...

【jzoj4756】【幻象】

题目大意每秒他的思绪中都有一定的概率浮现出奇异的幻象,持续x秒的幻象将产生 x^2的幻象值。他想知道,在N秒内他期望产生的幻象值是多少。解题思路设L[i]为第i秒幻象的持续时间的期望.显然L[i]= ...

1075:幻象迷宫

#include #include #include #define MAXN 1600 #define LEFT {-1,0} #define RIGHT {1,0} #define UP ...

人生的疆域与生存的幻象—阅读丰富人生

一. 人生的疆域   毋庸置疑,个体的生命和生活领域是极其有限的,个人的意志也不可能无限地延伸,在这一前提下,当我们面对苍穹或是纷繁复杂的社会时,常常有一种出于本能的渺小感悟。 人的肉体极容易毁灭...
  • fangix
  • fangix
  • 2011年11月19日 00:33
  • 1576

【NOIP2016提高A组模拟9.4】幻象

题目Descriptionphantom是一位爱思考的哲♂学家。 最近phantom得到了森の妖精的真传。在他练功的时候, 每秒他的思绪中都有一定的概率浮现出奇♂异的幻象,持续x秒的幻象将产生 的幻...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:14.2.2.5 幻象读
举报原因:
原因补充:

(最多只允许输入30个字)