1.读未提交
打开a事务更新一条数据

打开b事务查询这条数据

此时a事务回滚
![]()
b再次查询 数据与上次不一致,此为脏读

2.读已提交
打开a事务,修改数据,未提交

打开事务b,查找同一条数据,数据并未与a事务中未提交的数据保持一致,解决脏读问题

此时事务a提交
![]()
事务b再查一次,前后两次数据不一致,此为不可重复读

3.可重复读
打开事务a,执行更新语句

打开事务b,进行查找,未查到事务a中更新的数据

提交事务a

事务b再次查找,还是保持上次查询状态,解决不可重复读问题

4.串行化
读写数据都会锁住整张表
打开事务a,执行查询操作

打开事务b执行insert操作,发现被阻塞

事务a提交后,事务b的insert操作才被执行
![]()
![]()
本文深入解析了数据库事务的四种隔离级别:读未提交、读已提交、可重复读及串行化,阐述了每种级别下可能出现的问题,如脏读、不可重复读等,并解释了这些级别的具体工作原理。
4309





