mysql学习07-事务

事务是数据库区别于文件系统的重要特性,来保证数据库的完整性——要么都做修改,要么都不做。 Innodb存储引擎中的事务完全符合ACID的特性。

  • 原子性
  • 一致性
  • 隔离性
  • 持久性

事务的实现

  1. redo 在innodb存储引擎中,事务日志通过重做日志文件和日志缓冲文件实现。当一个事务开始时,会记录该事务的一个LSN,当事务执行的时候,会往innodb存储引擎的日志缓冲里插入事务日志;当事务提交时候,必须将日志缓冲写入磁盘。也就是在写数据前,需要先写日志。这种方式称作预写日志方式。 innodb通过预写日志的方式保证事务的完整性。

  2. undo 重做日志记录了事务的行为,可以很好的对其进行“重做”。但是事务y有时需要撤销,这时需要undo。