上一篇聊了一下Innodb存储引擎的相关知识点,包括Innodb的架构以及缓冲池相关知识点。
今儿就简单的来看一下一条sql的执行流程
1、客户端发送一条查询给服务端
2、服务端先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段
3、服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划
4、根据执行计划,调用存储引擎的API来执行查询。
5、返回结果。
例如下面这条sql:
update table t set a=a+1 where id = 1;
图中白底框表示是在 InnoDB 内部执行的
绿底框表示是在执行器中执行的。
redolog+binlog,WAL(write-ahead logging)
redo log 的写入拆成了两个步骤:
「prepare 和 commit,这就是"两阶段提交"」
事务=更新内存+写redolog+写binlog
下一篇聊一下索引相关的内容,敬请期待!
提前祝新春快乐!!!