事务理论 - ACID(简)
事务理论 - ACID
事务的四大基本特性:Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability(持久性)
什么是ACID
一个事务有四大基本特性,也就是我们常说的(ACID)
- Atomicity(原子性):事务是一个不可分割的整体,事务内所有操作要么全部成功,要么全部失败。
- Consistency(一致性):事务执行前后,数据从一个状态到另一个状态必须是一致的(A向B转账,不能出现A扣了钱,B却没有收到)。
- Isolation(隔离性):多个并发事务之间相互隔离,不能互相干扰。
- Durability(持久性):事务完成后,对数据库的更改是永久保存的,不能回滚。
ACID靠什么保证
以MySQL为例
- A原子性
由undo log日志保证,它记录了需要回滚的日志信息,事务回滚时撤销已经执行成功的SQL - C一致性
一般由代码层面来保证,或者数据库表 列 唯一 - I隔离性
由MVCC来保证 - D持久性
由内存 + redo log来保证,mysql修改数据同时在内存和redo log记录这次操作,事务提交的时候通过redo log刷盘,宕机的时候可以从redo log恢复