事务四个特征及实现原理
事务会把数据库从一种状态转换到另一种状态的一种一致状态。在数据库提交工作时,可以保证要么所有的修改都保存了,要么所有的修改都不保存。
InnoDB存储引擎具有事务的ACID的特性:
- 原子性(automicity)
- 一致性(consistence)
- 隔离性(isolation)
- 持久性(durability)
原子性是指整个数据库时不可分割的工作单位。
一致性是指事务将数据库从一种状态转变为下一种一致的状态。
隔离性是指每个读写事务的对象对其他事务的操作对象能相互分离,即该事务提交前对其他事务不可见。
持久性是指事务一旦提交,其结果就是永久性的。
原子性:通过redo(重做日志)实现;
一致性:通过undo日志实现
隔离性:通过锁来实现;
持久性:通过redo(重做日志)实现;