一条SQL查询语句是如何执行的?(14)
前面我有跟你介绍过 SQL 语句基本的执行链路 , 这里我再把那张图拿过来 , 你也可以先简单看看这个图回顾下 。 首先 , 可以确定的说 , 查询语句的那一套流程 , 更新语句也是同样会走一遍 。
MySQL 的逻辑架构图
你执行语句前要先连接数据库 , 这是连接器的工作 。
前面我们说过 , 在一个表上有更新的时候 , 跟这个表有关的查询缓存会失效 , 所以这条语句就会把表 T 上所有缓存结果都清空 。 这也就是我们一般不建议使用查询缓存的原因 。
接下来 , 分析器会通过词法和语法解析知道这是一条更新语句 。 优化器决定要使用 ID 这个索引 。 然后 , 执行器负责具体执行 , 找到这一行 , 然后更新 。
与查询流程不一样的是 , 更新流程还涉及两个重要的日志模块 , 它们正是我们今天要讨论的主角:redo log(重做日志)和 binlog(归档日志) 。 如果接触 MySQL , 那这两个词肯定是绕不过的 , 我后面的内容里也会不断地和你强调 。 不过话说回来 , redo log 和 binlog 在设计上有很多有意思的地方 , 这些设计思路也可以用到你自己的程序里 。
推荐阅读
- Uzi|LOL近年来两大转会假新闻!一条比一条离谱好笑
- 手机游戏|DNF关服了会有什么补偿?玩家讨论出四种可能,最后一条最靠谱
- 一条小团团|瘦身成功的小团团,只打算邀女粉庆生,结果多了8个男粉
- 一条小团团|网红「一条小团团」不惧恶评!大方露脸,发布视频!自称:从未被认出过
- 梦幻西游|梦幻西游:翻出一条10级双蓝字腰带,引来土豪哄抢,价值飙升10亿
- 超激斗梦境|《超激斗梦境》人物每一条属性介绍
- 一条小团团|鱼死网破?小团团发文暗示被背锅,公会的问题和她没关系
- 一条小团团|虎牙法神带小团团开黑,振刀成功后,小团团激动:我负责捡武器
- 云顶之弈|云顶之弈:开局三龙族,是天赐还是陷阱?不要一条道走到黑!
- 打野|新版本T0刺客突然诞生,出名刀可以再获得一条命,天克百里玄策!