本文主要是介绍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、mysql的事务日志的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!