数据库隔离级别
隔离级别
- Read Uncommitted(读取未提交内容)
- Read Committed(读取提交内容)
- Repeatable Read(可重读)
- Serializable(可串行化)
问题
- 脏读(Drity Read)
- 侧重于另一个事务的回滚(自己就没事务,无所谓回滚)
- 某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。
- 不可重复读(Non-Repeatable Read)
- 侧重于另一个事务对更新
- 在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。
- 幻读(Phantom Read)
- 侧重于另一个事务对插入、删除
- 在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的。
关系
Drity Read | Non-Repeatable Read | Phantom Read | |
---|---|---|---|
Read Uncommitted | |||
Read Committed | X | ||
Repeatable Read | X | X | |
Serializable | X | X | X |