继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

怎么解决幻读?

weixin_慕圣1138596
关注TA
已关注
手记 4
粉丝 0
获赞 1

脏读、不可重复读、幻读,这是概念,如果不理解,听起来会很懵逼。


脏读,是两个事务相互影响,导致数据不准,读未提交会导致脏读、不可重复读、幻读。


不可重复读,是同一个事务里面,每次读取的数据不一样,读已提交。引入了快照的概念,读取的是快照,快照有不同的版本号,根据版本号可以判断事务提交的先后顺序。避免了数据的混乱。如果A事务开始之后,B事务修改并提交了同一条数据,那么A事务会从undo log里面找到B事务开始之前的数据。实现可重复读,使用的是mvcc,多版本并发控制。


幻读,是数据新增导致的,因为新增的数据不在库里面,无法通过上面的方法控制。得用间隙锁控制,通过对区间加锁来解决幻读的问题。



打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP