前几天的MYSQL的事务错误不会滚的问题, 有同学反映没有太明白.
今天就以这个作为一个主题来做, 题目有点颠覆三观. 首先开头要说的是, MYSQL 默认情况下事务没有原子性....原子性保证每个事务被视为一个单独的“单元”,要么完全成功,要么完全失败,如果组成事务的任何一条语句失败,整个事务就会失败,而数据库将保持不变。...数据库服务器中,死锁和锁等待都是很正常的事情,当然可以从数据库和应用两个部分和不同的手段来解决问题....这是非常重要的一个问题,在某些系统中这样的问题,或偶发的问题是无法被接受的,例如扣款, 放款, 一批放款中,如果有一笔是错误的情况下,应该这个事务要进行全部回滚,因为程序会进行重试, 但如果和上面的结果一样...所以建议将 Innodb_rollback_on_timeout 全部置于ON 的状态, 方式关键系统在偶然的情况下,数据错误失准,导致业务损失.