ACID 四大特性
- 原子性(
Atomicity) :事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; - 一致性(
Consistency):执行事务前后,数据保持一致,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的;也有表示为从一个合法状态转变为另一个合法状态。 - 隔离性(
Isolation):并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;或者说,对于事务 a 来说,事务 b 要不在事务 a 前,要不在事务 a 后。 - 持久性(
Durability):一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。MySQL 持久化
原子性
MySQL 通过 Undolog 日志 来保证事务的原子性。
当事务执行成功,那么则正常成功。
当事务执行失败,那么基于 Undolog 日志 将修改的数据回滚到修改前的形式。
隔离性
MySQL 通过 MySQL 锁机制、MySQL MVCC 来保证事务的隔离性。
持久性
MySQL 通过 Redolog 日志 来保证事务的持久性,事务的修改能够保存记录下来。