杭州云贝教育吧 关注:2贴子:43
  • 0回复贴,共1

云贝教育|【经验小结】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的处理方式与其他表不同,表现在两方面:
它们不需要redo log。因为崩溃后,InnoDB不会重建临时表。
它们存储在临时表空间文件中的专用回滚段中。
欢迎同学们来云贝交流


1楼2023-10-12 17:00回复