脏读
- 概念:在事务的查询过程中可以查询到其他事务未提交的数据项。
- 解决方案:数据库隔离级别→读已提交(一般不需要这么做)
虚读
- 概念:在一个事务的两次相同查询中(两次查询有事件间隔),查询的结果不同。
- 解决方案:数据库隔离级别→可重复读
幻读
- 概念:在一个事务中,对数据表中所有的数据的某一具体项进行修改后,由于另外一个事务添加了一个数据项,因此上一个事务在修改完检查的时候得到的结果与预期不同。
- 解决方案:数据库隔离级别→串行化
重难点讲解
虚读与幻读的理解:虚读问题的重点在于,在同一个事务两次查询过程中,数据表数据可以被修改。
幻读问题的重点在于,在同一个事务前后,可以添加数据表数据。
综上,两者问题的本质是不用的,因此需要设置不同的隔离级别。