首先开头要说的是, MYSQL 默认情况下事务没有原子性.
首先什么是原子性, 的从事务说起,事务通常由多个语句组成。...InnoDB to roll back only the single statement that was waiting for the lock and encountered the timeout
在高并发的...可能有人还没觉得有什么事情,我们来一个业务说说这个问题
银行有一个业务,发放工资的业务, 在程序中执行了如下语句
Begin;
员工1工资账号 + 18000
员工2 工资账号+ 24000
员工3...这是非常重要的一个问题,在某些系统中这样的问题,或偶发的问题是无法被接受的,例如扣款, 放款, 一批放款中,如果有一笔是错误的情况下,应该这个事务要进行全部回滚,因为程序会进行重试, 但如果和上面的结果一样...所以建议将 Innodb_rollback_on_timeout 全部置于ON 的状态, 方式关键系统在偶然的情况下,数据错误失准,导致业务损失.