前言
大家应该都知道mysql的事务有四个隔离级别,但是他们分别是什么隔离级别并且会带来什么问题呢?接下来我为大家一一揭晓,通过图解的方式方便大家理解。
一、读未提交(Read Uncommitted)
1、这个是隔离级别最低的。
2、顾名思义,可以看出来就是一个事务可以读取另外一个未提交事务的修改。
3、存在的问题也最多,包含脏读、不可重复读、幻读。
4、因为存在问题最多,也是使用最少的隔离级别。
从图上可以看出来,事务1第一次查询的结果为18,当事务2修改过后事务在未提交的情况下,事务1再次查询的结果变为20。
这个就是脏读,事务1读取到了事务2修改了但是还未提交的数据。
二、读已提交(Read Committed)
1、大多数的数据库的默认隔离级别,但是mysql的默认隔离级别不是这个。
2、顾名思义,可以看出来一个事务只能读取到已经提交事务的修改。
3、存在的问题,包含不可重复读、幻读。
4、因为它只能读取到已经提交事务的修改,所以解决了脏读的情况。