MySQL-幻读

本文基于MySQL的数据库引擎InnoDB,通过本文了解:

1. 幻读:在一个事务的两次查询中数据不一致。

上一篇了解了MySQL的不可重复读,但是有时候同一个事务中,前后两次查询显示数据有可能是不一致的,以下就为示例:

更新了其它事务中新增数据:

第一步,第一个事务查询

第五步,第一个事务查询

结论:其它事务做插入,当前事务更新了插入的数据,当前事务查询的结果:被更新列为最新值。

更新了其它事务中删除数据:

结论:其它事务做删除,当前事务更新了删除的数据,当前事务查询的结果:该删除的数据仍然存在,被更新列的值不变。

更新了其它事务中修改数据:

第七步,第一个事务查询

结论:其它事务做更新,当前事务更新了该条数据,当前事务查询的结果:被更新列为最新值。

相关文章