12、mysql的事务日志
作者:互联网
mysql的事务日志
事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢?
- 事务的隔离性由锁机制实现。
- 事务的原子性、一致性和持久性由事务的redo日志和undo日志来保证。
REDO LOG称为重做日志:提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。
UNDO LOG称为回滚日志:事务的回滚(undo log记录的是每个修改操作的逆操作)和一致性非锁定读(undo log回滚行记录到某种特定的版本),用来保证事务的原子性、一致性。
有的同学认为undo log是redo log的逆过程,这种理解是错误的。
- redo log:是存储引擎层(innodb)生成的日志,记录的是"物理级别"上的页修改操作,比如页号、偏移量、数据,主要为了保证数据的可靠性
- undo log:是存储引擎层(innodb)生成的日志,记录的是逻辑操作日志,并不是真正回滚到执行该事务之前的物理状态,比如对某一行数据进行了INSERT语句操作,那么undo log就记录一条与之相反的DELETE操作,
redo日志
标签:事务,12,log,undo,mysql,操作,日志,redo 来源: https://www.cnblogs.com/worldusemycode/p/15966502.html