MySQL UPDATE语句执行链路解析

文章目录


引言

在现代应用中,数据库不仅需要支持高并发的读写操作,还需要在提供数据一致性保障的同时实现高性能。UPDATE语句作为修改数据库中现有数据的主要工具,其执行过程涵盖了从SQL解析、权限校验、事务管理到数据持久化的多个关键环节。本文将深入剖析MySQL中UPDATE语句的执行链路,结合流程图,逐步拆解各模块的职责和实现细节,帮助读者全面掌握这一过程的底层逻辑和优化方向。


1. 总览:UPDATE语句的执行链路

UPDATE语句的执行是一个复杂的过程,涉及多个核心模块和操作步骤。从客户端发起SQL请求,到最终完成数据页的修改并返回执行结果,整个链路可以分为以下几部分:

1.发送UPDATE请求
2.解析SQL语句
3.生成执行计划
4.表权限校验
5.请求执行
6.判断数据页是否在Buffer Pool中
7.记录修改前的快照到Undo Log
8.将Undo Log写入Undo Tablespace
9.修改Buffer Pool中的数据页
10.生成Redo Log并写入Redo Log Buffer
11.触发两阶段提交 阶段1 Prepare
12.将Redo Log从Buffer写入磁盘
13.记录逻辑更新到Binlog Cache
14.进入组提交队列
15.将Binlog写入文件系统缓存
16.将Binlog从文件系统缓存写入磁盘
17.阶段2 Commit 将Redo Log标记为Commit状态
18.后台线程异步将数据页刷新到磁盘
19.Double Write保护机制
客户端
连接器
查询解析器
查询优化器
权限校验模块
执行器
Buffer Pool
从Buffer Pool读取数据页
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值