事务

总结

介绍了事务的概念、两种事务提交模式以及事务的 ACID 特性。

概念

事务的概念

事务就是一组原子性的 SQL 查询,或者说一个独立的工作单元。事务内的语句,要么全部执行成功,要么全部执行失败。

大事务

运行时间比较长,长时间都不能提交的事务称为大事务。大事务可能会导致主从延迟,尽量避免。

事务的两种模式

  • 自动提交模式:
    • 默认是自动提交模式,自动提交模式下的事务是隐式事务。在自动提交模式下,数据库会自动将每条 SQL 语句视为一个独立的事务,无需显式地开启事务
    • 适用于数据一致性要求不高的场景,例如插入一条记录
  • 手动提交模式

事务的特性(ACID)

  • 原子性(atomicity):事务是最小的执行单位,一个事务中的所有操作要么全部提交成功,要么全部失败回滚。
  • 一致性(consistency):执行事务前后,数据的状态保持一致性。
  • 隔离性(isolation):通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的。
  • 持久性(durability):一旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,修改的数据也不会丢失。

A、I、D 是手段,C 是目的。只有保证了事务的持久性、原子性、隔离性之后,一致性才能得到保障。

MySQL 保证 ACID 详见 InnoDB引擎如何保证事务的ACID特性?

关联文章


文章作者: huan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 huan !
  目录