【MySQL】MySQL的事务ACID属性怎样理解?

MySQL的事务具有ACID四个属性:

  1. Atomicity (原子性)
    一个事务( transaction)中包含的所有操作,要么全都做,要么全都不做。 ensures consistency。
  2. Consistency (一致性)
    事务必须使数据库从一个一致性状态变换到另一个一致性状态。
  3. Isolation (隔离性)
    一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的。
  4. Durability (持久性)
    一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

举例来说:
如果一个从用户账户中转移100这次事务完成后,转账操作就应该是永久的。 即便后来系统崩溃,转账也不应该被回滚。

这四个属性共同确保了数据库事务处理具有:

  • 一致性:数据总是处于一致的可预期的状态。
  • 隔离性:一个事务的执行不能被其他事务干扰。
  • 持久性:被提交的事务是永久的,即便后来发生故障也不会丢失。
  • 原子性:事务的操作要么全部完成,要么完全不做。

它们保障了MySQL事务具有足够的完整性和正确性。