Mysql日志-RedoLog、UndoLog和BinLog的关系捋顺
一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。
那么,一条更新语句的执行流程又是怎样的呢?以及MySQL可以恢复到半个月内任意一秒的状态,这是怎样做到的呢?
InnoDB是事务的存储引擎,其通过Force Log at Commit机制实现事务的持久性,即当事务提交(COMMIT)时,必须先将该事务的所有日志写入到重做日志文件进行持久化,待事务的 COMMIT操作完成才算完成。这里的日志是指重做日志,在InnoDB存储引擎中,由两部分组成,即redo log和undo log。redo log用来保证事务的持久性,undo log用来帮助事务回滚及Mvcc的功能。redo log基本上都是顺序写的,在数据库运行时不需要对redo log的文件进行读取操作。而undo log是需要进行随机读写的。
WAL: Write-Ahead Logging
REDO LOG(redo log保证事务的持久性)
redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到最后一次提交的位置)。
redo log包括两部分:一是内存中的日志缓冲(redo log buffer),该部分日志是易失性的;二是磁盘上的重做日志文件(redo log file),该部分日志是持久的。
checkpoint机制
UNDO LOG(undo log保证事务的一致性)
BINLOG
Server层也有自己的日志,称为binlog(归档日志)。
binlog是MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句((除了数据查询语句)信息。
REDO LOG 和 BINLOG 日志有以下三点不同:
[资料来源]
1.Mysql实战45讲-丁奇
2.MySQL技术内幕
Mysql日志-RedoLog、UndoLog和BinLog的关系捋顺相关推荐
- MySQL日志系列(2):binlog日志管理
目录 传送门 binlog 日志索引文件 查看当前日志文件SQL命令 binlog日志文件更新 binlog日志文件删除 自动删除日志文件配置 手动删除日志文件 暂时停止binlog日志 使用binl ...
- MySQL的Redolog/Undolog/binlog日志
- mysql日志恢复 50530_Mysql之binlog日志恢复操作记录
MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志 ...
- (十一)MySQL日志篇之undo-log、redo-log、bin-log.....傻傻分不清!
任何项目都会有日志,MySQL也不例外,而且MySQL更是其中的佼佼者,日志种类繁多,而本篇的目的就是全解MySQL中的各类日志,如撤销日志.错误日志.慢查询日志.中继日志.回滚日志..... 其实日 ...
- MySQL之一篇读懂binlog redolog undolog
转自:https://juejin.cn/post/6860252224930070536 日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息.mysql日志主要包括错误日志.查询 ...
- MySQL日志:binlog、事务日志(redo、undo)
事务的隔离性是通过锁实现,而事务的原子性.一致性和持久性则是通过日志实现.Mysql的日志可以分为: binlog:server层实现 事务日志:包括redo log.undo log,引擎层(inn ...
- redolog 、undolog 和binlog
首先提及一下事务的ACID :原子性.一致性.隔离性和持久性 隔离性:是由 锁实现的 原子性.一致性.和持久性 是由 redo log 和undo log 来保证的 Mysql日志主要包括 1.慢查询 ...
- binlog/redolog/undolog?再也不会傻傻分不清楚了
欢迎关注方志朋的博客,回复"666"获面试宝典 想和大家聊聊 InnoDB 中的锁机制,那么不可避免的要涉及到 MySQL 的日志系统,binlog.redo log.undo l ...
- mysql 日志表设计_在mysql 使用binlog日志
一. 利用binlog恢复库表 策略: 1.启用binlog日志 2.创建db1库tb1表,插入3条记录 3.删除tb1表中刚插入的3条记录 4.使用mysqlbinlog恢复删除的3条记录 步骤一: ...
最新文章
- 并发编程-16AQS同步组件之CountDownLatch 闭锁
- oracle 控制文件作用是什么,Oracle控制文件(controlfile)作用
- OpenGL实现齿轮gears联动
- 安全测试基础 -- 概述【转载】
- python的scrapy框架的安装_Python爬虫基础(四)--Scrapy框架的安装及介绍
- 关于Git使用的一些心得
- 7 种分布式全局 ID 生成策略,你更爱哪种?
- C# USB设备的管理(Devcon和注册表的USB操作)
- 【Python】Pandas在数据库中执行SQL语句并加载结果
- 阿里云盘小白羊版 v2.9.19 绿色版
- openssl生成私钥公钥的步骤
- TypeError: softmax() got an unexpected keyword argument 'axis'
- java反射取实体字符串_JAVA反射机制 通过反射 Field类获取和修改对象类的字符串值...
- 腾讯区块链+医疗,一场值得期待的卫生行业创新探索
- Cisco简单配置(十三)—链路聚合
- 怎么查询IP段所对应的IP总数、网络地址、可用IP数量及范围、网关、子网掩码、广播地址呢?/29 服务器包含多少IP地址?
- 求助!神舟笔记本BIOS进不去!
- 离线环境遇到Problems loading reference..Unable to load schema from https-解决篇
- 如何计算电商网站页面单跳转化率?
- docker搭建c++开发环境
热门文章
- 深入理解数据库核心技术
- 又一本 Go 语言力作出版了
- TikTok 英国业务亏损、苹果从中国应用商店下架近4万款游戏、Zoom 接受调查等|Decode the Week...
- 毕业五年的音视频开发工程师过得怎么样了?
- LiveVideoStack线上交流分享 (十) —— 开源声码器WORLD在语音合成中的应用
- RealNetworks创始人Rob Glaser:为什么我们在中国取得成功?
- Facebook、谷歌、微软和亚马逊的网络架构揭秘
- CSS干货直击:腾讯无边界访问控制体系建设
- OpenResty简介及学习笔记
- 设置vim打开文件光标指在上次退出位置