目录
介绍
1.事务四种特性
1.1原子
1.2一致性
1.3隔离性
1.4持久性
2.并发可能会出现的情况
2.1脏读
2.2不可重复读
2.3幻读
总结重点
3.事务的四种隔离级别
3.1读未提交read-uncommitted
3.2不可重复读
3.3可重复读
3.4串行化
介绍
这里介绍下 从事务 到 并发可能出现情况,到数据库事务隔离级别,以及隔离级别对应的情况。
1.事务四种特性
1.1原子
事务开始干活,要么全做完,要么全部没做完,直接回滚,不可能停留在中间情况。事务发生任何问题,都直接回滚到执行前状态。

1.2一致性
事务开始前和执行后,数据库的完整约束性不会被改变,不会发生改变,像银行a向b赚钱,a扣了钱,b就必须增长钱
1.3隔离性
事务之间进行隔离,同一条数据一个事务操作其他事务不能操作,不会出现事务a做事,事务b也操作同一份数据情况。像a从银行取钱,b这个时候不能向a存钱,只有a完成后b才可以,完全隔离开
1.4持久性
事务完成后,所有更新的结果都会保存到数据库,并且不会发生回滚情况。
2.并发可能会出现的情况
2.1脏读
- 示例:事务a读取到事务b修改了的数据,这时事务b回滚了数据,事务a读到的就是脏数据。
2.2不可重复读
- 示例: 事务a多次读取同一数据,当中事务b更新并提交,事务a发现多次读到的不一样,就是不可重复读。
- 重点:事务b在事务a的多次读取中,做了修改
2.3幻读
- 示例:事务a批量修改一批条件中数据,字段phone=aa ,这时 事务b新增一条数据 也满足事务a修改数据的条件,最后事务a一看结果,我靠咋没全改过来呢,哈哈,很逗啊,出现幻觉了,就是幻读。
- 重点:事务a修改一批数据,事务b做了新增。
总结重点
- 不可重复读出现在,修改情况下。
- 幻读出现在新增情况下。
3.事务的四种隔离级别
3.1读未提交read-uncommitted
会涉及到:脏读、不可重复读、幻读 的情况
3.2不可重复读
会设计到:不可重复读、幻读 的情况
3.3可重复读
会涉及到: 幻读 的情况
3.4串行化
三类情况都不会涉及到
ok