mysql的四大特性(ACID 特性):
分别是:原子性,一致性,隔离性和持久性。
原子性:事务是一个整体被执行,在其中的对数据库的操作要么全部被执行,要么全部不执行。
一致性: 执行事务前后,数据保持一致,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的,数据应满足完整性约束。
隔离性:多个事务并发执行时,一个事务的执行不影响其它的事务执行。
持久化:一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响
事务的实现原理:
MySQL InnoDB 引擎使用 redo log(重做日志) 保证事务的持久性,使用 undo log(回滚日志) 来保证事务的原子性。
MySQL InnoDB 引擎通过 锁机制、MVCC 等手段来保证事务的隔离性。
保证了事务的持久性、原子性、隔离性之后,一致性才能得到保障。