Advertisement

MySQL第一篇关于undo/redo/binlog三者的区别?

阅读量:

undo log、redo log、bin log三者之间的区分?

产生的时间点、日志内容、用途 三方面展开论述即可

1.undo log——撤销日志

时间点:在事务执行的前一步骤中生成,在事务执行前基于当前数据版本生成一个undo日志,并将其存储在与事务同步的位置。

功能:InnoDB存储引擎主要用于存储旧版本的数据,并且便于在发生事务回滚时回放这些旧版本。

内容:旧版本的数据

用途:

  • 数据回滚机制用于执行事务回滚操作
  • 系统将严格遵循MVCC模型以保证一致性和可重复性
  • 采用ACID模型以实现数据原子性与一致性的同时满足事务需求

2.redo log——重做日志

时间点:事务开始之后产生,在事务的执行过程中写入日志数据

作用:在InnoDB存储引擎中用于确 保事务的持久性

内容:物理日志,对数据所做的修改。

用途:在系统崩溃时,用于同步数据。

处理过程

  • 分两步处理:
    • 首先处理 redelogs buffer(存在于内存)
    • 然后处理 redelogs file(存在于磁盘)
  • 一旦事务提交完成时:
    • 所有修改信息将被记录在红 logs 文件中(即红 logs file)
  • 好处如下:
      1. 该系统能够确保数据持久化存储

全部评论 (0)

还没有任何评论哟~