Xing
2022-10-27
2 min

事物

事物的定义

在执行多条sql时,要么全部成功、要么全部失败。这种把多条语句作为一个整体进行操作的功能,被称为数据库事务。

事物的特性

  • 原子性(Atomicity):将所有SQL作为原子工作单元执行,要么全部执行,要么全部不执行;
  • 一致性(Consistency):事务完成后,所有数据的状态都是一致的,即A账户只要减去了100,B账户则必定加上了100;
  • 隔离性(Isolation):如果有多个事务并发执行,每个事务作出的修改必须与其他事务隔离;
  • 持久性(Durability):即事务完成后,对数据库数据的修改被持久化存储。

事物的隔离级别

TIP

事物的隔离级别主要是解决以下几种情况

  • 脏读:读取到了其他事物未提交的数据。
  • 不可重复读:同一事物内同一sql多次查询,结果是不一致的,不管别的事物有没有修改该数据。
  • 幻读:同一sqlA事物执行了两次,中间B事物插入了N条数据,导致A事物第二次查询结果与第一次查询结果不一致。
脏读不可重复读幻读
读未提交
读提交
可重复读(默认)
串行化

MySQL有没有解决幻读