您的位置:首页 >> 程序开发 >> 关于for update的一些问题 — 别人都不说的秘密

关于for update的一些问题 — 别人都不说的秘密

[ 孤狼 | 2023-07-03 15:44:04 | 程序开发 | 2831°C | 0条评论 ]

上面一篇文章说了我使用了PHP的文件锁来制作了一个事务隔离。有些朋友说可以使用for update直接实现。于是去找了一些for update的资料,发现其中有一个点一直被他们说错了。于是就有了这篇文章。

很多文章在说到select for update的时候,都说一旦使用,其他事务就无法更新数据了,这样可以保证事务内数据一致。

但是他们没有说到的是,一旦有事务使用,不但无法更新,其他事务压根连查询的权利都没有。

测试

我们先开2个事务来模拟访问

事务1先使用for update查询


然后事务2也开始查询


这时候就会看到,事务2已经查不到数据,在等待了。

然后事务1完成提交


这时候事务2就能查到数据,而且是事务1修改后的新数据了。



所以,使用for update确实可以实现我们的数据隔离安全,但是也要在进入事务的第一时间使用,避免节外生枝。



转载请注明出处:http://gl.paea.cn/n.php?n=220
 
如您看得高兴,欢迎随意投喂,让我们坚持创作!
赞赏一个鸡腿
还没有人留下遗迹
综合 · 搜索