事务ACID特性
废话少说,先上个维基解说数据库事务
事务的ACID特性分别指的是原子性
(Atomicity)、一致性
(Consistency)、隔离性
(Isolation)和持久性
(Durability)。
下面分别简述:
原子性:将一组操作组合成原子操作,只有所有操作都成功才算成功,否则只要有一个操作失败就全部失败
一致性:事务必须保证系统处于一致性状态,不管事务如何交织并发执行。必须保证下面几条:
1.如果一个操作触发了间接行为(CASCADE、TRIGGER等),那么间接行为也必须成功,否则事务失败
2.如果一个系统包含多个数据节点,那么一致性强制要求修改必须传播到所有节点
3.虽然事务可以并行执行,但系统就好像在串行执行事务一样,即与串行执行事务导致的最终系统状态是一样的
隔离性:隔离性保证一个事务中未提交的修改对外界不可见。隔离性通过锁机制达到。
持久性:一个成功的事务必须永久改变系统的状态,在事务执行结束之前状态改变被记录在事务日志中。这样万一系统崩溃或断电,未完成的事务也可以回放。
end. enjoy it! LOL