10.1 并发操作可能造成的数据不一致现象及其原因
数据不一致的现象:
- 丢失修改:例如事务 B 的提交坏了事务 A 提交的结果,导致 A 的修改丢失。(乐观锁场景)
- 不可重复读:例如事务 A 读取后,事务 B 对事务 A 读取的字段执行了更新操作,使得 A 无法再现前一次读取结果。
- 读脏数据:例如事务 A 的修改写回了硬盘,事务 B 读取了同一数据,但此时 A 因为某种原因被撤销,于是 B 读到的数据就为脏数据。
原因:
- 数据库发生故障。
- 并发事务对数据的共享:事务的隔离性被破坏,事务之间相互干扰。