前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql-4-redo、undo、binlog

Mysql-4-redo、undo、binlog

原创
作者头像
Get
发布2024-03-10 21:03:27
800
发布2024-03-10 21:03:27

https://www.jianshu.com/p/20e10ed721d0

代码语言:java
复制
1、binlog(归档日志):MySQL 自带的日志模块,是一个二进制格式的文件,用于"记录用户对数据库更新的SQL语句信息"。
                    主要作用:主从复制、数据恢复
2、undo_log(回滚日志):用于保证数据的原子性,记录数据修改之前的数据,可以用于回滚(记录旧数据)
                    主要作用:事务回滚、实现多版本控制(MVCC)
3、redo_log(重做日志):记录事务的修改操作的日志,用来崩溃后的数据恢复(记录新数据),InnoDB 引擎自带了日志模块。
                    主要作用:当有增删改相关的操作时,会先记录到 Innodb 中,并修改缓存页中的数据,
                             等到 mysql 闲下来的时候才会真正的将 redolog 中的数据写入到磁盘当中。
	redo_log 采用两阶段提交的方式:
    	redo_log(prepare):记录新数据,更新redo_log状态为预提交状态。
    redo_log(commit):更新redo_log状态为提交状态。

1、redo log:在InnoDB存储引擎中,大部分Redo log记录的是物理日志,即数据页的物理变化。
             主要用于解决数据库崩溃后安全恢复。
             一般由两个部分组成:
                            1、内存中重做日志缓冲(redo log Buffer)易丢失,在内存中;
                            2、重做日志文件(redo log file),保存在磁盘中。
   redo log写入时机:数据页修改完成后,在脏页刷出磁盘之前,写入redo log日志。注意是先修改数据,在写入日志。

2、undo log:主要记录的是数据的逻辑变化,为了在发生错误时回滚之前的操作,需要将之前的操作都记录下来,然后在发生错误时才可以回滚。
            undo log的作用:
                            1、用于事务的回滚(保证原子性);
                            2、用于MVCC(保证一致性);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com