事务的ACID
...大约 1 分钟
事务的ACID
事务有四大特性。一致性是最终达成的目的,原子性、隔离性、持久性是手段。
原子性
一个事务中的所有操作,要么全部发生,要么全部不发生,不会出现只执行一半,而另一半没有执行的情况。
比如经典的转账案例,A向B转账100元,操作1是A的账户扣除100元,操作2应该是B的账户增加100元。但是如果操作1结束后的瞬间,数据库宕机,操作2没有发生,整个事务应该回滚,回到操作1之前的状态,就像任何操作没有进行的样子,而不能"明明A账户扣除了100元,但是B账户没有增加"的情况。
一致性
一个事务执行前后,数据库应该保持一致性的状态,比如A账户和B账户原来余额都是200元,一共是400元,转账之后,A账户应该是100元,B账户应该是300元,加起来还是400元。
隔离性
数据库的事务应该具有隔离性,即不同事务在不同的空间能够并发执行,而不会相互干扰。
持久性
一个事务执行完毕后,对数据库的影响应该是永久的,即使数据库发生宕机,也不应该丢失数据。
Powered by Waline v2.15.8