数据库事务隔离级别

数据库事务的隔离级别有4个,由低到高依次为

Read uncommitted、

Read committed、

Repeatable read、

Serializable,

这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。

数据库事务隔离级别

 

脏读,A事务读取B事务尚未提交的数据,此时如果B事务发生错误并执行回滚操作,那么A事务读取到的数据就是脏数据

 

不可重复读,事务A在执行读取操作,由整个事务A比较大,前后读取同一条数据需要经历很长的时间 。而在事务A第一次读取数据,比如此时读取了小明的年龄为20岁,事务B执行更改操作,将小明的年龄更改为30岁,此时事务A第二次读取到小明的年龄时,发现其年龄是30岁,和之前的数据不一样了,成为不可重复读。

 

幻读, 出现了新数据,事务A在执行读取操作,需要两次统计数据的总量,前一次查询数据总量后,此时事务B执行了新增数据的操作并提交后,这个时候事务A读取的数据总量和之前统计的不一样,就像产生了幻觉一样,平白无故的多了几条数据,成为幻读。

 

数据库事务隔离级别