当前位置: 首页 > 图灵资讯 > java面试题> 金三银四精选java面试题-什么是脏读、幻读、不可重复读?

金三银四精选java面试题-什么是脏读、幻读、不可重复读?

来源:图灵教育
时间:2023-12-05 10:23:49
 

什么是脏读、幻读、不可重复读?

脏读、幻读和不可重复读是数据库事务隔离级别中的三种常见问题。

  • 脏读(Dirty Reads):事务A读取到了事务B已经修改但尚未提交的数据。
  • 不可重读(Non-Repeatable Reads):事务A内部的相同查询语句在不同时刻读出的结果不一致。
  • 幻读(Phantom Reads):事务A读取到了事务B提交的新增数据。

id

age

1

18

隔离级别

并发问题

适用场景

隔离级别从上往下,由低到高。
隔离级别越高,事务的并发性能就越低。

读未提交(read-uncommitted)

可能会导致脏读、幻读或不可重复读

并发性要求不高

读已提交(read-committed)

可能会导致幻读或不可重复读

并发性要求较高

可重复读(repeatable-read)

可能会导致幻读

数据一致性要求较高

可串行化(serializable)

不会产生干扰

数据一致性要求非常高