前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >一条sql的奇幻冒险之旅

一条sql的奇幻冒险之旅

作者头像
Liusy
发布2021-03-03 15:33:45
发布2021-03-03 15:33:45
28600
代码可运行
举报
文章被收录于专栏:Liusy01Liusy01
运行总次数:0
代码可运行
  • 前言
  • 一条select语句的执行流程
  • 一条update语句的执行流程
  • 结尾

前言

上一篇聊了一下Innodb存储引擎的相关知识点,包括Innodb的架构以及缓冲池相关知识点。

今儿就简单的来看一下一条sql的执行流程

一条select语句的执行流程

1、客户端发送一条查询给服务端

2、服务端先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段

3、服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划

4、根据执行计划,调用存储引擎的API来执行查询。

5、返回结果。

一条update语句的执行流程

例如下面这条sql:

代码语言:javascript
代码运行次数:0
复制
update table t set a=a+1 where id = 1;

图中白底框表示是在 InnoDB 内部执行的

绿底框表示是在执行器中执行的。

redolog+binlog,WAL(write-ahead logging)

redo log 的写入拆成了两个步骤:

「prepare 和 commit,这就是"两阶段提交"」

事务=更新内存+写redolog+写binlog

结尾

下一篇聊一下索引相关的内容,敬请期待!

提前祝新春快乐!!!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Liusy01 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一条select语句的执行流程
  • 一条update语句的执行流程
  • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档