BlogBlog
首页
  • Vue
  • TypeScript
  • React
  • Angular
  • Node.js
  • 小程序
  • Flutter
  • 数据产品
  • 大数据

    • Hadoop
    • Hive
    • Spark
  • MySQL
  • Redis
  • Java
  • Python
  • Golang
GitHub
首页
  • Vue
  • TypeScript
  • React
  • Angular
  • Node.js
  • 小程序
  • Flutter
  • 数据产品
  • 大数据

    • Hadoop
    • Hive
    • Spark
  • MySQL
  • Redis
  • Java
  • Python
  • Golang
GitHub

03-事务

事务的概念

事务是指一组数据库操作,要么都成功,要么都失败。事务具有四个属性:原子性、一致性、隔离性、持久性。

  • 原子性(Atomicity):事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
  • 一致性(Consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
  • 隔离性(Isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
  • 持久性(Durability):持续性也称永久性,指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

事务ACID、隔离级别

  • 事务隔离级别,脏读,不可重复读,幻读
  • 读未提交(read-uncommitted),是,是,是
  • 不可重复读(read-committed),否,是,是
  • 可重复读(repeatable-read), 否,否,是
  • 串行化(serializable), 否,否,否

总结: RR下,事务在第一个Read操作时,会建立read-view RC下,事务在每次Read操作时,都会建立read-view

事务隔离的实现

undo log版本链, readview的 事务set,min_trx_id,max_trx_id,trx_id_list

最近更新:: 2025/5/4 09:43
Contributors: alice