登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
/ 2 页
下一页
返回列表
首页
›
业界区
›
安全
›
MySQL 02 日志系统:一条SQL更新语句是如何执行的? ...
MySQL 02 日志系统:一条SQL更新语句是如何执行的?
[ 复制链接 ]
要燥
2025-9-25 21:10:30
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
比如执行一条更新语句:
update T set c=c+1 where ID=2;
复制代码
首先,更新语句也会走一遍查询语句的流程。除此以外,更新还涉及两个日志模块,分别是redo log和binlog。
redo log
MySQL的更新用到了WAL(Write-Ahead Logging)技术,关键点就是先写日志,再写磁盘。具体来说,当有一条记录需要更新时,InnoDB引擎先将记录写到redo log并更新内存,这时更新就可以算完成了。之后,InnoDB会在适当的时候将这个操作记录更新到磁盘里。
InnoDB的redo log是固定大小的,比如可以配置为一组4个文件,每个文件大小为1GB。它的写法是从头开始写,写到末尾后又继续从开头写,如下所示:
这里,write pos是当前记录的位置,check point是当前要擦除的位置。当记录更新到磁盘,check point会向前移动。当有新的更新操作要记录,write pos会向前移动。
因此,有可能write pos会追上check point。这时候就不能执行新的更新,需要先将一部分记录更新到磁盘。
有了redo log,InnoDB就可以保证即使数据库发生异常重启,之前提交的记录都不会丢失,这个能力称为
crash-safe
。
当设置innodb_flush_log_at_trx_commit=1,表示每次事务的redo log都直接持久化到磁盘。推荐设置,这样可以保证MySQL异常重启后数据不丢失。
binlog
redo log是InnoDB引擎特有的日志,而binlog是Server层的日志。最开始,由于MySQL自带引擎为MyISAM,并没有crash-safe的能力,因此后来引入InnoDB后,同时使用这两种日志。binlog的主要作用是做
备份
。
当设置sync_binlog=1,表示每次事务的binlog都持久化到磁盘。推荐设置,这样可以保证MySQL异常重启后binlog不丢失。
两者的具体区别如下:
redo log是InnoDB引擎特有的,而binlog是Server层实现的。
redo log是物理日志,记录“在某个数据页上做了什么修改”;binlog是逻辑日志,记录这个语句的原始逻辑,比如“给ID=2的行的c字段加1”。
redo log是循环写,空间固定;binlog是追加写,写完一个文件会写下一个文件。
介绍完两个日志的概念,来看执行器+InnoDB引擎完成前面的更新语句的流程:
执行器找到ID=2这一行,若这一行所在的数据页在内存中,则直接返回给执行器,否则需要先从磁盘读入数据页再返回。
执行器拿到引擎返回的数据,做c+1的操作,得到新数据。
引擎将新数据更新到内存,同时将这个更新操作记录到redo log里,此时redo log处于prepare状态。然后告知执行器执行完成,随时可以提交事务。
执行器生成该操作的binlog,并将binlog写入磁盘。
执行器调用引擎的提交事务接口,引擎把刚写入的redo log改成commit状态,更新完成。
上面redo log写入拆为了prepare和commit,就是
两阶段提交
。
为什么需要两阶段提交
以前面的更新语句为例。假设ID=2的行中,字段c初始为0。并假设执行update过程中,写完第一个日志但还没写完第二个日志时发生了crash。
如果不使用两阶段提交,那么无非两种情况:
先写redo log再写binlog。当redo log写完,系统即使崩溃,仍能恢复数据c=1。但binlog里并没有记录更新语句,之后要用binlog去做备份时,恢复出来的c=0,与原库不同。
先写binlog再写redo log。当binlog写完之后crash,由于redo log还没写,崩溃后恢复数据c=0。但由于binlog已写完,之后用binlog去做备份时,恢复出来的c=1,与原库不同。
即如果不使用两阶段提交,那么恢复临时库或主从备份就可能出现不一致。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
MySQL
日志
系统
一条
SQL
相关帖子
实时行情系统的第一道槛:如何应对数据源的“限流”与“断流”
实时行情系统的第一道槛:如何应对数据源的“限流”与“断流”
windows11系统安装openclaw
MySQL 数据库日志总结(二)
MySQL 数据库日志总结(二)
.NET 高级开发 | 配置系统原理、实现一个配置中心
.NET 高级开发 | 配置系统原理、实现一个配置中心
.NET 高级开发 | 配置系统原理、实现一个配置中心
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
实时行情系统的第一道槛:如何应对数据源的“限流”与“断流”
1
473
岑韬哎
2026-04-01
业界
实时行情系统的第一道槛:如何应对数据源的“限流”与“断流”
0
695
人弧
2026-04-01
科技
windows11系统安装openclaw
1
856
卢铃语
2026-04-02
业界
MySQL 数据库日志总结(二)
0
183
杼氖
2026-04-03
业界
MySQL 数据库日志总结(二)
0
570
吉娅寿
2026-04-03
业界
.NET 高级开发 | 配置系统原理、实现一个配置中心
0
804
僭墙覆
2026-04-03
业界
.NET 高级开发 | 配置系统原理、实现一个配置中心
1
701
馑妣窟
2026-04-03
业界
.NET 高级开发 | 配置系统原理、实现一个配置中心
0
265
蝓俟佐
2026-04-03
回复
(31)
更成痒
2025-10-14 00:40:12
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
分享、互助 让互联网精神温暖你我
盛天欣
2025-11-23 19:31:27
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
豺独
2025-12-11 15:00:31
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
谢谢分享,试用一下
昝沛珊
2025-12-13 01:45:55
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
过来提前占个楼
战匈琼
2025-12-21 09:47:04
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
庾芷秋
2025-12-30 16:39:39
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
收藏一下 不知道什么时候能用到
髭赌
2026-1-1 04:29:35
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
眩疝诺
2026-1-4 14:23:27
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
懂技术并乐意极积无私分享的人越来越少。珍惜
抽厉
2026-1-14 01:54:02
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享,下载保存了,貌似很强大
诞楮
2026-1-14 07:51:58
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
懂技术并乐意极积无私分享的人越来越少。珍惜
驶桐柢
2026-1-15 00:28:13
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,辛苦了
佴莘莘
2026-1-20 13:26:07
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
很好很强大 我过来先占个楼 待编辑
玻倌瞽
2026-1-21 00:39:05
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
新版吗?好像是停更了吧。
庇床铍
2026-1-22 05:27:34
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
热心回复!
枢覆引
2026-1-22 21:34:44
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
毋献仪
2026-1-24 09:59:03
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
东西不错很实用谢谢分享
橘芜
2026-1-28 16:00:35
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享,下载保存了,貌似很强大
茅香馨
2026-1-29 06:39:07
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
很好很强大 我过来先占个楼 待编辑
裆趾针
2026-1-29 07:47:51
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享
下一页 »
1
2
/ 2 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
要燥
2026-1-29 07:47:51
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9535
6
韶又彤
9913
7
荪俗
9030
8
宋子
9875
9
蓬森莉
9871
10
俞瑛瑶
10000
查看更多
今日好文热榜
40
如何在手机微信上重新排列PDF文件?
808
Vscode 中 python模块的导入问题
557
前端大屏适配方案:rem、vw/vh、scale 到底
721
斯坦福这篇论文,治好了我的 AI 焦虑
655
kimi 2.5编程能力测试,效果非常不错
247
斯坦福这篇论文,治好了我的 AI 焦虑
434
斯坦福这篇论文,治好了我的 AI 焦虑
117
一文解锁 JuiceFS 在 AI 场景中的性能优化
733
一文解锁 JuiceFS 在 AI 场景中的性能优化
920
斯坦福这篇论文,治好了我的 AI 焦虑
255
一文解锁 JuiceFS 在 AI 场景中的性能优化
375
斯坦福这篇论文,治好了我的 AI 焦虑
874
斯坦福这篇论文,治好了我的 AI 焦虑
403
JetBrains 发布全新 AI IDE:AIR,会不会改
254
斯坦福这篇论文,治好了我的 AI 焦虑
328
周边店上新!博客园淘宝店上架机械键盘
836
斯坦福这篇论文,治好了我的 AI 焦虑
983
周边店上新!博客园淘宝店上架机械键盘
256
嘉为蓝鲸 DevOps 平台与 AI 技术结合:推动
957
斯坦福这篇论文,治好了我的 AI 焦虑