MySQL 脏读、不可重复读、幻读分别是什么?
脏读:读到其他事务未提交的数据(可能被回滚)——READ UNCOMMITTED 才有;不可重复读:同一事务两次读同一行,值不同(其他事务提交了 UPDATE)——RC 有、RR 解决;幻读:同一事务两次查询同一范围,行数不同(其他事务插入/删除了行)——RR 下 InnoDB 通过 MVCC(快照读)与间隙锁/Next-Key Lock(当前读)解决大部分。区分:不可重复读是改(行内容变化),幻读是增删(行数变化)。验证:开两个会话,按级别设置后执行对应操作观察。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。