前几天的MYSQL的事务错误不会滚的问题, 有同学反映没有太明白.
今天就以这个作为一个主题来做, 题目有点颠覆三观. 首先开头要说的是, MYSQL 默认情况下事务没有原子性....数据库服务器中,死锁和锁等待都是很正常的事情,当然可以从数据库和应用两个部分和不同的手段来解决问题....上面那段加粗的字体的英文就是今天这篇文字的重点 become part of the transaction ,也就是说,MYSQL 的ACID , Atom 这一项 破功了....这是非常重要的一个问题,在某些系统中这样的问题,或偶发的问题是无法被接受的,例如扣款, 放款, 一批放款中,如果有一笔是错误的情况下,应该这个事务要进行全部回滚,因为程序会进行重试, 但如果和上面的结果一样...所以建议将 Innodb_rollback_on_timeout 全部置于ON 的状态, 方式关键系统在偶然的情况下,数据错误失准,导致业务损失.