如果使用MySQL来开发银行交易系统或者类似逻辑,在事务基础上的逻辑正确性的问题应当如何解决?

比如同一个账户,多个事务并发操作,都是加钱的操作,都先读,读到了之后,内存中加,加好后写入,按照Mysql中innodb的特点,可并发读同一行,写入的时候出现竞争,这样会导致事务是正确的,但是最终写入的数据是错误的,大家业务上是如何处理的呢?

onebyone串行吗?

阅读 1.6k
1 个回答

最简单的做法是在交易时加锁后进行操作,这样就不会出错

select balance from t_balance where user_id=xxx for update
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题