MySQL 知识 -- 数据库事务特性
本文最后更新于:7 分钟前
⚡事务的特性
-
A(Atomic) 原子性
事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节
事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样
-
C(Consistency) 一致性
指事务将数据库从一种状态转变为另一种一致的的状态
事务开始前和结束后,数据库的完整性约束没有被破坏
这个特性可能最难理解,其实一致性的C是目标,AID 是手段来保证一致性
ACID 里的 AID 都是数据库的特征,也就是依赖数据库的具体实现.而唯独这个 C,实际上它依赖于应用层,也就是依赖于开发者.这里的一致性是指系统从一个正确的状态,迁移到另一个正确的状态.什么叫正确的状态呢?就是当前的状态满足预定的约束就叫做正确的状态.而事务具备ACID里C的特性是说通过事务的AID来保证我们的一致性.
-
I(Isolation) 隔离性
要求每个读写事务的对象对其他事务的操作对象能互相分离,即该事务提交前对其他事务不可见
也可以理解为多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果
这指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间,由并发事务所做的修改必须与任何其他并发事务所做的修改隔离
注:MySQL 通过锁机制来保证事务的隔离性。
-
D(Durability) 持久性
事务一旦提交,则其结果就是永久性的.即使发生宕机的故障,数据库也能将数据恢复
也就是说事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚
本博客所有文章除特别声明外,均采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 。转载请注明出处!