您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

幻读是什么?

2024/3/20 4:55:30发布22次查看
幻读是什么?
幻读就是事务a首先根据条件索引得到n条数据,然后事务b改变了这n条数据之外的m条或者增添了m条符合事务a搜索条件的数据,导致事务a再次搜索发现有n+m条数据了,这就会产生幻读。
如何解决幻读?
通过 next-key lock解决。
产生幻读的原因是,行锁只能锁住行,但是新插入记录这个动作,要更新的是记录之间的“间隙”。因此,为了解决幻读,innodb引入间隙锁。
gap lock间隙锁在可重复读级别下才有效
间隙锁和行锁合称 next-key lock,每个 next-key lock 是前开后闭区间。
在数据库定义的四种隔离级别中
最高隔离级别serializable_read可以保证不出现幻读的问题。
repeatable read (rr)
针对当前读,rr隔离级别保证对读取到的记录加锁 (记录锁),同时保证对读取的范围加锁,新的满足查询条件的记录不能够插入 (间隙锁),不存在幻读现象。
推荐教程:《mysql教程》
以上就是幻读是什么?的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product