概述
在mysql开发过程中,当执行一条insert语句后,数据是如何保存到数据库的。这里将从两个角度简单的描述一下过程,希望能对大家了解mysql和面试有所帮助。
从mysql架构体系角度
我们先看下流程图:
如上图流程所示,我们从mysql架构角度描述下sql执行过程如下:
1.客户端发送请求到数据库的server端。
2.mysql server端会有链接器组件接受请求。
3.接收到请求后,会经过分析器对sql进行分析:首先进行语法分析和此法分析,如果语法有错误会返回异常,其次会生成AST抽象语法树,将语句识别成一个个的tocken。(两个开源的分析器:calcite,antlr)
4.然后会经过优化器对sql 进行优化,生成执行性能最高的执行方式。
5.执行器会将最终的sql调用执行引擎执行语句。
从执行细节角度
我们从执行细节语句是如何执行的,先看下流程图如下: