Innodb事务

»Mysql

事务特性

事务有ACID四个特性:及原子性、一致性、隔离性、持久性

事务的隔离级别

事务有四个隔离级别:未提交度、提交度、可重复读、串行读

与此同时,事务过程中有如下问题:

Innodb中事务特性实现方式

  1. 原子性、持久性保证 通过redo日志实现,及事务提交时会先将事务操作写到redo日志中持久化,当事务进行恢复的时候就可以读取redo日志恢复到之前的状态

  2. 一致性 通过undo实现。undo存在数据库内部的undo段中,当事务需要回滚时通过读取undo信息将数据回滚到修改之前的状态,通过undo回滚是通过执行事务过程中相反的操作。同时MVCC也是通过undo实现非锁定一致性读。

  3. 隔离性 隔离性是通过锁实现的,Innodb有行锁、表锁、间隙锁、读锁、写锁等一系列的锁。