2020/01/29 02-事务ACID和隔离级别
事务是由若干条语句组成的,指的是要做的一系列操作。 关系型数据库中支持事务,必须支持4个属性,ACID A 原子性 atomicity 一个事务是一个不可分割的工作单位,事务中包括的所有操作要么全部做完,要么什么都不做 C 一致性 consistency 事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的 I 隔离性 isolation 一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离 , 的,并发执行的各个事务之间不能互相干扰 D 持久性 durability 持久性也称永久性(permanence)。指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响 原子性,事务要么不做,要么做完 **并行执行事务和顺序执行事务的结果应该一致,当这些操作做完之后,多个事务执行完,要求并行执行和排队执行结果是一致的 ** 每个事务的操作不互相干扰, 事务一旦提交成功,数据库的改变就应该永久保存下来 做到这4点,才能叫支持事务的数据库,mysql的myisam不支持事务,innodb支持事务,一般需要解释下ACID,原子性,一致性(要求并行,且互不干扰),隔离性,持久性, 隔离级别 隔离性不好,会带来一些问题: 1.更新丢失 2.脏读 3.不可重复读 UNrepeatable