最近一直在做订单类的项目,使用了事务。
我们的数据库选用的是MySql,存储引擎选用innoDB,innoDB对事务有着良好的支持。
这篇文章我们一起来扒一扒事务相关的知识。
事务广泛的运用于订单系统、银行系统等多种场景。
如果有以下一个场景:A用户和B用户是银行的储户。
现在A要给B转账500元。
那么需要做以下几件事:1.检查A的账户余额>500元;
2.A账户扣除500元;
3.B账户增加500元;
正常的流程走下来,A账户扣了500,B账户加了500,皆大欢喜。
那如果A账户扣了钱之后,系统出故障了呢?A白白损失了500,而B也没有收到本该属于他的500。
以上的案例中,隐藏着一个前提条件:A扣钱和B加钱,
1