原创

Mysql 事物的四种特性

温馨提示:
本文最后更新于 2022年12月07日,已超过 883 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

事物的四种特性

1. 原子性: 事物包含的全部操作要么全部成功,要么全部失败回滚,成功必要要完全应用到数据库,失败则不能对数据库产生影响。

2. 一致性:事物执行前和执行后必须处于一致性状态。

例如:用户A 和 用户B 的钱加起来一共是5000,无论用户AB之间是如何相互转换的,事物结束后两个用户的钱加起来还是5000,这就是一致性。

3. 隔离性:当多个用户并发访问数据库时,数据库为每一个用户开启的事物,不会被其他用户的事物所干扰,多个并发事物之间要隔离。

4. 持久性:一个事物一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失事物的操作。

 MYSQL 是怎么保障 ACID的?

1. 原子性:A 是通过undo log名为回滚日志来保证

2. 持久性:D 是通过InnoDb的redo log

3. 隔离行:I 是利用MVCC和锁

4. 一致性:C 是最终的目的,通过原子性、持久性、隔离性来保障。 

正文到此结束