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)
- 好处如下:
-
- 该系统能够确保数据持久化存储
-
全部评论 (0)
还没有任何评论哟~
