跳到主要内容

10.1 并发操作可能造成的数据不一致现象及其原因

数据不一致的现象:

  • 丢失修改:例如事务 B 的提交坏了事务 A 提交的结果,导致 A 的修改丢失。(乐观锁场景)
  • 不可重复读:例如事务 A 读取后,事务 B 对事务 A 读取的字段执行了更新操作,使得 A 无法再现前一次读取结果。
  • 读脏数据:例如事务 A 的修改写回了硬盘,事务 B 读取了同一数据,但此时 A 因为某种原因被撤销,于是 B 读到的数据就为脏数据。

原因:

  • 数据库发生故障。
  • 并发事务对数据的共享:事务的隔离性被破坏,事务之间相互干扰。