什么是事务:
事务是逻辑上的一组操作,要么都执行,要么都不执行。
数据库事务又是什么:
事务特性:
- 原子性,要么全做,要么都不做。
依赖undo log(回滚日志)实现 - 持久性,事务结束后,对数据的修改是永久的,系统故障也不会丢失。
依赖redo log(重做日志)实现 - 隔离性,多个事务同时使用相同数据时,不会相互干扰,每个事务都有独立的数据空间,与其他事务隔离,防止多个事务并发时交叉执行导致数据不一致。
依赖MVCC(多版本并发控制)实现 - 一致性,数据操作前后,数据满足完整性约束,数据库保持一致性状态。例如A有6块糖果,B有8块糖果,一共14块,A给B 2块糖果,包含A减少2块,B增加2块两个操作。一致性就是当完成上述步骤后,糖果总量仍为14。
依赖 原子性+持久性+隔离性 实现