1 事务基础

确保一组数据库操作要么全部成功,要么全部失败,从而保证数据的一致性和完整性。

1.1 并发事务问题

2 事务实现原理

2.1 Redo Log

Redo Log也被称作重做⽇志,是InnoDB存储引擎特有的⽇志,用来保证事务的原⼦性和持久性。

Redo Log通常包含两部分:⼀部分是内存中的日志缓冲,称作Redo Log Buffer,这部分日志较容易丢失;另⼀分是存放在磁盘上的重做⽇志⽂件,称作Redo Log File,这部分⽇志是持久化到磁盘上的,不容易丢失。

Untitled

订单数据会被优先写到Redo Log Buffer中,随后写入redo log文件中,当mysql发生故障重启时,会通过redo log文件中的数据对订单表中数据进行恢复。

2.1.1 Redo Log刷盘规则

Redo Log具有以下⼏种刷盘规则。

  1. 开启事务,发出提交事务指令后是否刷新⽇志由变量innodb_flush_log_at_trx_commit决定。