浅析redo、undo、checkpoint

本文深入探讨了数据库事务的原子性和持久性,重点分析了undo log和redo log在实现事务回滚和持久化中的作用。介绍了undo log如何确保原子性,redo log如何保证持久性,以及checkpoint机制在减少恢复时间方面的贡献。同时,讨论了double write、checksum、脏页和日志顺序号(LSN)等关键概念。
摘要由CSDN通过智能技术生成

事务的原子性:事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。

事务的持久性:事务一旦完成,该事务对数据库所做的所有修改都会持久的保存到数据库中。


undo log:为了实现事务的原子性,在innodb中,还用undo log实现MVCC

undo log原理:在操作任何数据之前,首先将数据备份到一个地方(即undo log),然后进行数据修改,如果出现错误或用户执行了rollback语句,则系统就可以利用undo log中的备份数据恢复到事务开始之前的状态


redo log原理:redo log记录的是新数据的备份。在事务提交前,只要将redo log持久化即可,不需要将数据持久化。当系统崩溃时,虽然数据没有持久化,但是redo log已持久化,系统可以根据Redo Log的内容,将所有数据恢复到最新的状态。


undo +redo 事务的特点:

1.为了保证持久性,必须在事务提交前将redo 持久化

2.数据不需要在事务提交前写入磁盘,而是缓存在内存中

3.redo 保证事务的持久性

4.undo 保证事务的原子性

5.数据必须要晚于redo log写入持久存储


undo+redo主要是为了提升IO性能,通过缓存数据,减少了写数据的IO。但是却引入了redo log 的IO,通过以下特点提升redo log的IO性能:

1.尽量保持redo log存储在一段连续的空间上,所以在系统第一次启动时就会将日志文件的空间完全分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值