“脏读”、“幻读”、“不可重复读”
1.概念说明
“脏读”、“幻读”、“不可重复读”是数据库事务的概念。
-
“脏读”是指一个事务中访问到了另外一个事务未提交的数据。
-
“不可重复读”是指在一个事务内根据同一个条件对数据进行多次查询,但是结果却不一致,产生的原因是其他事务对该数据就行了修改。
-
“幻读”是指在当两个完全相同的查询执行时,第二次查询所返回的结果集和第一个查询所返回的结果集不相同,发生的原因也是另外一个事务新增、删除了第一个事务结果集里面的数据。
2.“幻读”和“不可重复读”的区别
“不可重复读”和“幻读”的区别是:“不可重复读”关注的重点在于记录的更新操作,同样的记录, 再次读取出来后发现返回的数据值不一样了;“幻读”关注的重点在于记录新增或者删除操作 (数据条数发生了变化),同样的条件第 1 次和第 2 次查询出来的记录数不一样。