本系列文章是来源于救火队队长的专栏:《从零开始带你成为MySQL实战优化高手》,从面试题的角度出发,将MySQL的各个知识点进行浓缩和总结,方便大家用于快速的回顾和面试准备。
MySQL实战优化高手
MySQL的InnoDB存储引擎如何实现数据更新?
一条SQL的执行流程
首先我们看一下一条SQL的执行,经过了哪些组件的处理。
当客户端连接到MySQL后,发起SQL语句执行的请求,MySQL会分配线程处理网络请求,将网络请求解析为SQL语句,转发给SQL接口(SQL Interface)执行。
SQL接口会先使用 查询解析器 按照SQL语句解析出来SQL要干什么,如果字段不存在这里会抛出异常。
接着会找查询优化器(Optimizer)来选择一个最优的查询路径,也即查询成本最低的方式。这个后续会细化。
最后,执行器会根据查询优化器选择的方案,调用存储引擎的接口,按照一定的顺序和步骤执行SQL的逻辑。

一条SQL的执行流程
[server]
innodb_buffer_pool_size = 2147483648