当前位置:   article > 正文

Mysql可重复读业务场景_事务可重复读的意义在哪?

事务可重复读有什么意义

根据我所理解的,不可重复读是指在一个事务中对同一数据进行多次读取时,由于其他事务对该数据进行了更新,导致事务中多次读取的结果不一致;而可重复读就是即使其他事务对该数据进行了更新,该读事务多次读取的结果也是一致的。

这样的话我就有疑惑了:数据本身就被更新了,为什么还要保证多次读取的结果一致?这也只是表面上看上去一致的呀,实际都已经改变了,相反我个人还觉得不可重复读能够及时反映数据的变化,似乎更合理一些?那么可重复读的意义在哪呢?或者说不可重复读会有什么后果呢?

另外,还有个小问题:一个事务对数据进行了修改,但是还没有提交,那么这次修改是否真的生效了呢?虽然通过隔离级别能够设置为读已提交,但是我个人觉得隔离级别只是针对于一个事务而言的,而不会影响数据库本身,那么对于数据库本身来说,此次未提交的修改是否生效呢?

对于这个问题,我结合了一下其他的资料,说一下我的理解:关闭事务自动提交,事务开启后,会将事务开启前的数据信息保存在undo日志里面,事务执行中对数据的所有操作实际上都已经体现在数据库中了,即使没有提交,数据在数据库中也已经生效,这样说来,事务语句最后输入的commit只有表示事务结束的意思,真正的提交已经伴随着事务执行发生了,如果最终输入的是rollback,就会通过undo日志来将数据库中的被修改的数据恢复到初始状态,从而实现“回滚”。

不知道我的这种理解是否正确呢?望不吝赐教,十分感谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/738627
推荐阅读
相关标签
  

闽ICP备14008679号