本地事务

  1. 本地事务,就有ACID特性。redolog实现了持久性,undolog实现了原子性。隔离性,是通过锁来实现的
  2. 数据库的并发,并发带来的问题
  3. [更新丢失]
  4. [脏读]
  5. 不可重复读 (B事务修改了数据),可重复读来解决重复读问题。
  6. 幻读 (B事务新增/删除了数据),只能设置隔离级别串行化来处理。
  7. 事务隔离级别,解决了并发中的各种问题。一般使用RR或者RC.

ACID

A (Atomicity) 原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。undolog实现原子性

C (Consistency) 一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性;事务结束时,所有的内部数据结构(如B树索引或双向链表)也都必须是正确的.

I (Isolation)隔离性:一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。通过MVCC来实现

D (Durability) 持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。redolog重做日志) 实现持久化。

并发带来的问题

事务隔离级别