异常
| 异常 | 现象 | 常用对策 |
|---|---|---|
| 丢失更新 | 两次读改写互相覆盖 | 版本号乐观锁、行锁 |
| 写偏斜 | 两个事务各改一半破坏约束 | 可串行化隔离、显式锁 |
| 幻读 | 范围查询结果集变化 | 间隙锁、可串行化 |
| 脏写 | 覆盖未提交的写入 | 数据库写锁(多数库默认防止) |
乐观锁失败要配合重试与幂等,否则用户看到随机报错。
常见并发异常包括丢失更新、写偏斜、幻读与脏写;处理手段有乐观锁(版本号)、悲观锁(行锁或 SELECT FOR UPDATE)与提高隔离级别。
| 异常 | 现象 | 常用对策 |
|---|---|---|
| 丢失更新 | 两次读改写互相覆盖 | 版本号乐观锁、行锁 |
| 写偏斜 | 两个事务各改一半破坏约束 | 可串行化隔离、显式锁 |
| 幻读 | 范围查询结果集变化 | 间隙锁、可串行化 |
| 脏写 | 覆盖未提交的写入 | 数据库写锁(多数库默认防止) |