数据库学习之幻读

1 幻读的定义
在可重复读隔离级别或者读提交之下(即:在一致性试图之下),在同一个事务中,前后查询同一个范围内的数据时,发现后一次查询所得到的数据是前一次查询时所没有的。我们就成这种称这种情况为幻读。
2 幻读一些说明

  1. 在在可重复读隔离级别之下,普通的查询操作所使用的快照读,是不会看到其他事务插入的数据的。因此,幻读只有在“当前读”下才会出现。而所谓的当前读就是进行了更新操作
  2. 幻读仅仅指读取到了新插入的行的数据。由其他事务updat产生的当前读不属于幻读的范畴

3 幻读的产生的原因
在可重复读隔离级别之下,查询的过程中没有给所有的行进行加锁导致幻读。但是有时候即便加了锁,在遇到insert新(不存在)记录时,仍然会导致幻读
4 幻读的解决方案
间隙锁:用于解决insert新记录时导致幻读的情况。给行与行之间的空隙进行了加锁
行锁
行锁+间隙锁的组合,用于避免幻读的产生

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值