消息关闭
    暂无新消息!
例如:我的账户,有个double类型的余额字段..
我账户有买和卖,那对于余额,就是增加和减少.
我余额为400元,卖出一件商品100元,那余额为500元.
买进一件商品200元,那余额为300元.
-----------------------------------------------------------
问题是网站是相当于多线程的,可能多人同时在访问.
2个人同时在买我的东西.我余额为300时,本来一个人,一个人排排队来结算.
那就是
第1人:300+100
第2人:400+100
-----------------------------------------------------------
但如果是同时的话,那会不会变成
第1人:300+100
第2人:300+100
结果我的余额不见了100块.

5个回答

︿ 0
  已采纳
已采纳
不会出现,对数据库来说这是两个不同的事务,总有一个先执行,先执行的INSERT或UPDATE时会给表加锁,ISAM加表锁,INNODB加记录锁。再有同一个PHP页面可以被多个人同时访问,他们数据的提交不会出现交叉污染。
︿ 2
对于 update 数据库会将并发处理转成串行处理
如果不放心,就自己加锁