mysql数据库幻读

一、幻读是什么?

事务A按照一定条件进行数据读取,期间事务B插入了在A事务搜索范围内的新数据,事务A再次按照原先的条件进行数据的读取时,发现了事务B新插入的数据称之为幻读。

二、幻读处理

如果事务中都是用快照读,那么不会产生幻读的问题,但是快照读和当前读一起使用的时候就会产生幻读。
一般情况下select * from 是快照读。不会加锁。
for update ,lock in share mode, update ,delect 都属于当前读。

解决幻读,可以采用间隙锁方式解决幻读问题。我们队查询的范围值加上区间范围锁定,这样其他事务进行更新操作的时候只能等待查询业务提交之后才能进行更新操作。

猜你喜欢

转载自blog.csdn.net/qq_15592789/article/details/115309365