简单解释不可重复读和幻读

版权声明:原创文章,未经允许不得转载.Tips:传统电商火热的时代已经成为过去 , 下一个阶段属于大数据 人工智能 , 服务、便捷、安全、效率、创新成为下一个阶段互联网时代的新词汇,而IT技术也随着行业的变化发展而不断更迭。对于码农的出路总结一句话:追技术不如追领域。[基础][设计][能力] https://blog.csdn.net/shengqianfeng/article/details/85218868

之前看了一篇关于数据库隔离级别的文章觉得挺好。http://singo107.iteye.com/blog/1175084

不过很多人对“不可重复读”和“幻读“这两者的区别搞不清楚,包括我自己曾也是迷糊了很久一段时间。

但是,必须说明的是“不可重复读”关注的重点其实在于更新和删除这两种操作。

比如:一个事务A开启后,第一次读取到一些数据之后,就对这些数据进行加行锁,导致其他事务B无法修改(更新或者删除)数据,于是A事务不管怎么读,返回的都是一样的数据,这就实现了“可重复读”这个隔离级别。

可是要注意:“其他事务B无法修改这些数据(更新或删除)”,不代表其他事务B不能insert一些记录并提交。这样一来事务A还是可以读取到一条之前没有出现的数据,这就产生了“幻读”。

所以说,行级锁是无法解决幻读问题的。要想解决这个问题必须实现Serializable隔离级别。

猜你喜欢

转载自blog.csdn.net/shengqianfeng/article/details/85218868