作者:胖墩老师
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. 它们存储在临时表空间文件中的专用回滚段中。
*禁止转载,可转发(转发文章请注明出处)