事务的四个特性
ACID,指的就是
- 原子性(Atomicity)
- 一致性(Consistency)
- 隔离性(Isolation)
- 持久性(Durability)
举个例子:
A 向 B 转账 500 元,转账成功,A 扣除 500 元,B 增加 500 元。
原子性:体现在要么都成功,要么都失败。靠undo log实现,失败时回滚已做的操作。
一致性:转账过程中数据要一致,A 扣了 500,B 必须增加 500,总金额不变。它由原子性、隔离性、持久性共同保证。
隔离性:A 向 B 转账,不能受其他事务干扰。靠锁 + MVCC实现。
持久性:事务提交后,要把数据持久化(可以说是落盘操作)。事务一旦提交,它对数据的修改就是永久的,即使之后数据库崩溃、断电、重启,数据也不会丢。