未分类

数据库事务

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

一个事务必须与由其他事务进行的资源或数据更改相隔离的程度。隔离级别从允许的并发副作用(例如,脏读或虚拟读取)的角度进行描述。

副作用

不同级别带来的副作用

隔离级别 脏读 不可重复读 幻读
read uncommitted 未提交读
read committed 已提交读
repeatable read 可重复读
SNAPSHOT 快照
serializable 序列化(串行读)
  1. 脏读:一事务对数据进行了增删改,但未提交,有可能回滚,另一事务却读取了未提交的数据
  2. 不可重复读:一事务对数据进行了更新或删除操作,另一事务两次查询的数据不一致
  3. 幻读:一事务对数据进行了新增操作,另一事务两次查询的数据不一致
分享到