Home 数据库事务隔离一致性
Post
Cancel

数据库事务隔离一致性

事务隔离级别

  • Read uncommitted(未提交读) 脏读,不可重复读,幻读
  • Read committed(已提交读) 不可重复读,幻读
  • Read Repeatable(可重复读取,InnoDB默认级别) 幻读
  • Serializable(可串行化)

并发操作带来的数据不一致性

  • 丢失数据修改: 两个事务T1和T2读入同一数据并进行修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被T2覆盖
  • 读“脏”数据: 一个事务读取某个失败事务运行过程中的数据(未提交的数据),失败事务ROLLBACK
  • 不可重复读: 事务T1读取数据后,T2执行了更新操作,修改了T1读取的数据.
  • 幻读 or 产生“幽灵”数据: 可以简单理解,可重复读与update以及delete相关,幻读与insert有关,因为事务第一次读取数据之后给这些数据加了锁,其他事务不能修改这些数据。但这种方法无法锁住insert。

MVCC 多版本控制

乐观锁

This post is licensed under CC BY 4.0 by the author.