mysql幻读现象及其避免策略
- 1、幻读是什么?
- 2、快照读与当前读
- 3、如何避免幻读?
- 3.1 快照读
- 3.2 当前读
💖The Begin💖点点关注,收藏不迷路💖
|
1、幻读是什么?
幻读是事务中第二次查询返回了之前不存在的记录,因为其他事务插入了新数据。
2、快照读与当前读
- 快照读:读取数据的历史版本,如普通SELECT,通过MVCC避免幻读。
- 当前读:读取数据的最新版本,如UPDATE、DELETE等,容易出现幻读。
3、如何避免幻读?
3.1 快照读
- MVCC:每个事务开始时获取数据快照,确保事务内数据一致性。
3.2 当前读
- next-key锁:结合行锁和间隙锁,锁定索引记录和间隙,防止新数据插入。
- Serializable隔离级别:事务串行执行,避免幻读但降低并发性。
💖The End💖点点关注,收藏不迷路💖
|