MySQL 知识 -- 数据库事务特性

本文最后更新于:7 分钟前

事务的特性

  1. A(Atomic) 原子性

    事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节

    事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样

  2. C(Consistency) 一致性

    指事务将数据库从一种状态转变为另一种一致的的状态

    事务开始前和结束后,数据库的完整性约束没有被破坏

    这个特性可能最难理解,其实一致性的C是目标,AID 是手段来保证一致性

    ACID 里的 AID 都是数据库的特征,也就是依赖数据库的具体实现.而唯独这个 C,实际上它依赖于应用层,也就是依赖于开发者.这里的一致性是指系统从一个正确的状态,迁移到另一个正确的状态.什么叫正确的状态呢?就是当前的状态满足预定的约束就叫做正确的状态.而事务具备ACID里C的特性是说通过事务的AID来保证我们的一致性.

  3. I(Isolation) 隔离性

    要求每个读写事务的对象对其他事务的操作对象能互相分离,即该事务提交前对其他事务不可见

    也可以理解为多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果

    这指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间,由并发事务所做的修改必须与任何其他并发事务所做的修改隔离

    注:MySQL 通过锁机制来保证事务的隔离性。

  4. D(Durability) 持久性

    事务一旦提交,则其结果就是永久性的.即使发生宕机的故障,数据库也能将数据恢复

    也就是说事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚