1、 原子性:事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
2、 一致性:指在事务开始之前和事务结束以后,数据不会被破坏,假如A账户给B账户转
10块钱,不管成功与否,A和B的总金额是不变的。
3、 隔离性:多个事务并发访问时,事务之间是相互隔离的,即一个事务不影响其它事务运行 效果。简言之,就是事务之间是进水不犯河水的。
4、 持久性:表示事务完成以后,该事务对数据库所作的操作更改,将持久地保存在数据库之中。
事务ACID特性的实现思想
1、 原子性:是使用undo log来实现的,如果事务执行过程中出错或者用户执行了 rollback, 系统通过undo log日志返回事务开始的状态。
2、 持久性:使用redo log来实现,只要redo log日志持久化了,当系统崩溃,即可通过 redo log把数据恢复。
3、 隔离性:通过锁以及MVCC,使事务相互隔离开。
4、 一致性:通过回滚、恢复,以及并发情况下的隔离性,从而实现一致性。
Was this helpful?
0 / 0