2021-09-06 10:45:11
幻读和不可重复读的核心区别在于关注点不同:不可重复读聚焦于数据值的变更,而幻读聚焦于记录数量的变化。以下为具体分析:
不可重复读
指在同一事务内,多次读取同一条数据时,其值发生了变化。这种变化由其他事务的更新操作引发。例如,事务1中用户A首次查询工资为1000元,此时事务2将A的工资修改为2000元并提交。事务1再次查询时,发现工资变为2000元。关键特征:
幻读
指在同一事务内,多次执行相同查询时,返回的记录数发生变化。这种变化由其他事务的插入或删除操作引发。例如,事务1首次查询工资为1000元的员工,返回5条记录。此时事务2插入一条工资为1000元的新员工记录并提交。事务1再次执行相同查询时,返回6条记录。关键特征:
总结
不可重复读与幻读均属于数据库并发控制中的异常现象,但本质差异显著: