MySQL总结redo和undo

作者:胖墩老师

Redo log(重做日志)

定义:在它们被制成数据文件之前,存储这些修改操作。优点:这使得InnoDB可以优化数据写操作,这样它们就不需要同步进行

用于:在崩溃恢复期间使用,InnoDB会在重做日志文件中重做操作,即使是那些在崩溃前没有写入数据文件的操作,这样以确保所有表的事务一致性

位置:默认位于数据目录中

用the innodb_log_group_home_dir option(选项)进行控制。

Undo log(撤回日志)

定义:存储被事务修改未修改数据的副本,以便InnoDB可以访问数据的早期版本。也被叫做“rollback segments(回滚片段)”

用于:mvcc和rollback。

位置:InnoDB默认将undo日志存放在系统表空间中

注意三点:1. 当您创建一个新的MySQL实例时,您可以将撤消日志放置在系统表空间之外

2. 在初始化系统表空间后,不能更改指定撤消日志的位置

3. 无法重新迁移现有MySQL实例上的撤消日志,更改现有MySQL实例上的撤消日志的位置。

特点:具有不同于标准数据的I/O模式。这些模式使它们非常适合存储在SSD

the innodb_undo_tablespaces option(选项)是控制undo表空间文件个数。

the innodb_undo_directory option(选项)是包含undo表空间文件的文件系统的路径。

临时表的undo log的处理方式与其他表不同。表现在两方面:

1.     它们不需要redo log因为崩溃后,InnoDB不会重建临时表

2.  它们存储在临时表空间文件中的专用回滚段中。

*禁止转载,可转发(转发文章请注明出处)

MySQL总结redo和undo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值