background image

php mysql 丢失更新问题

php mysql 丢失更新问题,搜索整个互联网,很少有讲到,也许和 php 程序员出身一般都是
非科班出身有关系吧。

另外

php 程序一般都是简单数据,很少有并发一致性问题,所以大家都没有谁专门提出这

个问题。

 

这个问题无法依靠数据库的并发机制进行控制,因为不是一回事。

丢失更新:(

Lost Update) 

事务

T1 读取了数据,并执行了一些操作,然后更新数据。事务 T2 也做相同的事,则 T1 和

T2 更新数据时可能会覆盖对方的更新,从而引起错误。

这里的事务不是指的数据库事务。

可以理解成两个不同的客户端。

 

举例:

在时间

T1

 

PC 机 1 客户读到一条 message      | pc 机 2 客户读到同一个 message

修改

                            | 修改

时间

t2

保存

                          时间 t3

                            | 保存