MySQL -- 事务

概念:事务就是一原子性的SQL查询,或者说一个独立的工作单元

如果数据库引擎能成功地对数据库应用该组查询的全部语句,那么就执行该组查询,如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行,也就是说,事务内的语句,要么全部执行成功,要么全部失败。

示例:银行转帐

  1. 检查A帐户中余额高于200美元
  2. 从A帐户中减去200美元
  3. 在B帐户中增加200美元

上述三个操作必须打包在一个事务中,任何一个步骤失败,则必须回滚所有的步骤。

ACID测试

  • A(atomictiy) 原子性 :一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。
  • C(consistency) 一致性:数据库总是从一个一致性状态转换到另一个一致性状态。所做的修改需要提交才会保存到数据库中
  • I(isolation) 隔离性:通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的。
  • D(durability) 持久性:一旦事务提交,则其所做的修改就会永久保存到数据库中,此时即使系统崩溃,修改的数据也不会丢失。

参考资料: 高性能MySQL》1.2

你可能感兴趣的:(MySQL -- 事务)